{"core.arp": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FULL_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"ip": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address to look up in ARP table or `null` for all entries.", "title": "ip", "_name_": "ip", "_required_": false}, "interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Network interface to query or `null` for all interfaces.", "title": "interface", "_name_": "interface", "_required_": false}}, "title": "options", "type": "object", "description": "CoreArpArgs parameters.", "_name_": "options", "_required_": true, "_attrs_order_": ["ip", "interface"]}], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping IP addresses to MAC addresses from the ARP table.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "core.bulk": {"description": "Will sequentially call `method` with arguments from the `params` list. For example, running\n\n call(\"core.bulk\", \"zfs.snapshot.delete\", [[\"tank@snap-1\", true], [\"tank@snap-2\", false]])\n\nwill call\n\n call(\"zfs.snapshot.delete\", \"tank@snap-1\", true)\n call(\"zfs.snapshot.delete\", \"tank@snap-2\", false)\n\nIf the first call fails and the seconds succeeds (returning `true`), the result of the overall call will be:\n\n [\n {\"result\": null, \"error\": \"Error deleting snapshot\"},\n {\"result\": true, \"error\": null}\n ]\n\nImportant note: the execution status of `core.bulk` will always be a `SUCCESS` (unless an unlikely internal\nerror occurs). Caller must check for individual call results to ensure the absence of any call errors.", "cli_description": "Will sequentially call `method` with arguments from the `params` list", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": [], "accepts": [{"description": "Method name to execute for each parameter set.", "title": "method", "type": "string", "_name_": "method", "_required_": true}, {"description": "Array of parameter arrays, each representing one method call.", "items": [{"items": [{}], "type": "array"}], "title": "params", "type": "array", "_name_": "params", "_required_": true}, {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Format string for job progress (e.g. \"Deleting snapshot {0[dataset]}@{0[name]}\").", "title": "description", "_name_": "description", "_required_": false}], "returns": [{"description": "Array of results for each bulk operation item.", "items": [{"additionalProperties": false, "properties": {"job_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Job ID for this bulk operation item or `null` if it failed to start.", "title": "job_id", "_name_": "job_id", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if this item failed or `null` on success.", "title": "error", "_name_": "error", "_required_": true}, "result": {"description": "Result data returned by this bulk operation item.", "title": "result", "_name_": "result", "_required_": true}}, "required": ["job_id", "error", "result"], "title": "CoreBulkResultItem", "type": "object", "_attrs_order_": ["job_id", "error", "result"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "core.debug": {"description": "Setup middlewared for remote debugging.\n\nengine currently used:\n - REMOTE_PDB: Remote vanilla PDB (over TCP sockets)\n\noptions:\n - bind_address: local ip address to bind the remote debug session to\n - bind_port: local port to listen on\n - threaded: run debugger in a new thread instead of the main event loop", "cli_description": "Setup middlewared for remote debugging", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FULL_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"bind_address": {"default": "0.0.0.0", "description": "IP address to bind the debug server to.", "title": "bind_address", "type": "string", "_name_": "bind_address", "_required_": false}, "bind_port": {"default": 3000, "description": "Port number to bind the debug server to.", "title": "bind_port", "type": "integer", "_name_": "bind_port", "_required_": false}, "threaded": {"default": false, "description": "Whether to enable threaded debugging support.", "title": "threaded", "type": "boolean", "_name_": "threaded", "_required_": false}}, "title": "options", "type": "object", "description": "CoreDebugArgs parameters.", "_name_": "options", "_required_": true, "_attrs_order_": ["bind_address", "bind_port", "threaded"]}], "returns": [{"description": "Returns `null` when the debug server is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "core.download": {"description": "Call a job that produces downloadable output and get a URL to retrieve the result.\n\nThis method executes jobs that generate files or streaming data for download. The job writes its output\nto a pipe, and this method returns a time-limited, single-use download URL.\n\n1. Call ``core.download`` with the target job method, arguments, and desired filename\n\n2. Receive an array containing the job ID and download URL\n\n3. Make an HTTP GET request to the download URL to retrieve the data\n\n4. The download URL expires after a timeout and can only be used once", "cli_description": "Call a job that produces downloadable output and get a URL to retrieve the result", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Name of the job method to execute.", "examples": ["config.save"], "title": "method", "type": "string", "_name_": "method", "_required_": true}, {"description": "Arguments to pass to the job method.", "items": [{}], "title": "args", "type": "array", "_name_": "args", "_required_": true}, {"description": "Suggested filename for the downloaded file. Sets the `Content-Disposition` header.", "examples": ["system-config-backup.db"], "title": "filename", "type": "string", "_name_": "filename", "_required_": true}, {"default": false, "description": "Whether to buffer the job's output.\n\n* `false` (default): Job starts writing immediately to the download stream. The job blocks until the client downloads the data or 60 seconds elapses. Use for large files or streaming data.\n* `true`: Job output is buffered in RAM until completion, then made available for download. The download URL remains valid for 3600 seconds. Use for small files when you need to ensure the job completes before downloading.", "title": "buffered", "type": "boolean", "_name_": "buffered", "_required_": false}], "returns": [{"description": "Array containing the job ID and download URL.\n\n* First element: Job ID that can be used with `core.get_jobs` to monitor progress\n* Second element: Download URL in the format `/_download/{job_id}?auth_token REDACTED}`", "examples": [[86, "/_download/86?auth_token REDACTED, "maxItems": 2, "minItems": 2, "prefixItems": [{"type": "integer"}, {"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "core.get_jobs": {"description": "Get information about long-running jobs.\nIf authenticated session does not have the FULL_ADMIN role, only\njobs owned by the current authenticated session will be returned.\n\n`result` key will have sensitive values redacted by default for external\nclients.\n\nRedaction behavior may be explicitly specfied via the `extra`\nquery-option `raw_result`. If `raw_result` is True then unredacted result\nis returned.", "cli_description": "Get information about long-running jobs", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this job.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "message_ids": {"description": "Array of message IDs associated with this job.", "items": [{}], "title": "message_ids", "type": "array", "_name_": "message_ids", "_required_": false}, "method": {"description": "Name of the method/service being executed by this job.", "title": "method", "type": "string", "_name_": "method", "_required_": false}, "arguments": {"description": "Array of arguments passed to the job method.", "items": [{}], "title": "arguments", "type": "array", "_name_": "arguments", "_required_": false}, "transient": {"description": "Whether this is a temporary job that will be automatically cleaned up.", "title": "transient", "type": "boolean", "_name_": "transient", "_required_": false}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of what this job does. `null` if not provided.", "title": "description", "_name_": "description", "_required_": false}, "abortable": {"description": "Whether this job can be cancelled/aborted.", "title": "abortable", "type": "boolean", "_name_": "abortable", "_required_": false}, "logs_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "File system path to detailed job logs. `null` if no logs available.", "title": "logs_path", "_name_": "logs_path", "_required_": false}, "logs_excerpt": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Brief excerpt from job logs for quick preview. `null` if no logs available.", "title": "logs_excerpt", "_name_": "logs_excerpt", "_required_": false}, "progress": {"additionalProperties": false, "properties": {"percent": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Completion percentage of the job. `null` if not available.", "title": "percent", "_name_": "percent", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the current progress. `null` if not available.", "title": "description", "_name_": "description", "_required_": true}, "extra": {"description": "Additional progress information specific to the job type.", "title": "extra", "_name_": "extra", "_required_": true}}, "required": ["percent", "description", "extra"], "title": "progress", "type": "object", "description": "Current progress information for the job.", "_name_": "progress", "_required_": false, "_attrs_order_": ["percent", "description", "extra"]}, "result": {"description": "The result data returned by the job upon successful completion.", "title": "result", "_name_": "result", "_required_": false}, "result_encoding_error": {"description": "Encoding error information if result serialization failed.", "title": "result_encoding_error", "_name_": "result_encoding_error", "_required_": false}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the job failed. `null` if no error occurred.", "title": "error", "_name_": "error", "_required_": false}, "exception": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Exception details if the job encountered an exception. `null` if no exception occurred.", "title": "exception", "_name_": "exception", "_required_": false}, "exc_info": {"anyOf": [{"additionalProperties": false, "properties": {"repr": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "String representation of the exception. `null` if no exception occurred.", "title": "repr", "_name_": "repr", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Exception type name. `null` if no exception occurred.", "title": "type", "_name_": "type", "_required_": true}, "errno": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "System error number if applicable. `null` otherwise.", "title": "errno", "_name_": "errno", "_required_": true}, "extra": {"description": "Additional exception information.", "title": "extra", "_name_": "extra", "_required_": true}}, "required": ["repr", "type", "errno", "extra"], "title": "CoreGetJobsItemExcInfo", "type": "object", "_attrs_order_": ["repr", "type", "errno", "extra"]}, {"type": "null"}], "description": "Detailed exception information. `null` if no exception occurred.", "title": "exc_info", "_name_": "exc_info", "_required_": false}, "state": {"description": "Current execution state of the job.", "examples": ["WAITING", "RUNNING", "SUCCESS", "FAILED", "ABORTED"], "title": "state", "type": "string", "_name_": "state", "_required_": false}, "time_started": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp when the job started execution. `null` if not yet started.", "title": "time_started", "_name_": "time_started", "_required_": false}, "time_finished": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp when the job completed execution. `null` if still running or not started.", "title": "time_finished", "_name_": "time_finished", "_required_": false}, "credential REDACTED, "properties": {"type": {"description": "Authentication type used for the job.", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "data": {"description": "Authentication data and credential REDACTED, "title": "data", "type": "object", "_name_": "data", "_required_": true}}, "required": ["type", "data"], "title": "CoreGetJobsItemCredential REDACTED, "type": "object", "_attrs_order_": ["type", "data"]}, {"type": "null"}], "description": "Authentication credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}}, "title": "CoreGetJobsItemQueryResultItem", "type": "object", "_attrs_order_": ["id", "message_ids", "method", "arguments", "transient", "description", "abortable", "logs_path", "logs_excerpt", "progress", "result", "result_encoding_error", "error", "exception", "exc_info", "state", "time_started", "time_finished", "credential REDACTED}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this job.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "message_ids": {"description": "Array of message IDs associated with this job.", "items": [{}], "title": "message_ids", "type": "array", "_name_": "message_ids", "_required_": false}, "method": {"description": "Name of the method/service being executed by this job.", "title": "method", "type": "string", "_name_": "method", "_required_": false}, "arguments": {"description": "Array of arguments passed to the job method.", "items": [{}], "title": "arguments", "type": "array", "_name_": "arguments", "_required_": false}, "transient": {"description": "Whether this is a temporary job that will be automatically cleaned up.", "title": "transient", "type": "boolean", "_name_": "transient", "_required_": false}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of what this job does. `null` if not provided.", "title": "description", "_name_": "description", "_required_": false}, "abortable": {"description": "Whether this job can be cancelled/aborted.", "title": "abortable", "type": "boolean", "_name_": "abortable", "_required_": false}, "logs_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "File system path to detailed job logs. `null` if no logs available.", "title": "logs_path", "_name_": "logs_path", "_required_": false}, "logs_excerpt": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Brief excerpt from job logs for quick preview. `null` if no logs available.", "title": "logs_excerpt", "_name_": "logs_excerpt", "_required_": false}, "progress": {"description": "Current progress information for the job.", "title": "progress", "_name_": "progress", "_required_": false}, "result": {"description": "The result data returned by the job upon successful completion.", "title": "result", "_name_": "result", "_required_": false}, "result_encoding_error": {"description": "Encoding error information if result serialization failed.", "title": "result_encoding_error", "_name_": "result_encoding_error", "_required_": false}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the job failed. `null` if no error occurred.", "title": "error", "_name_": "error", "_required_": false}, "exception": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Exception details if the job encountered an exception. `null` if no exception occurred.", "title": "exception", "_name_": "exception", "_required_": false}, "exc_info": {"anyOf": [{}, {"type": "null"}], "description": "Detailed exception information. `null` if no exception occurred.", "title": "exc_info", "_name_": "exc_info", "_required_": false}, "state": {"description": "Current execution state of the job.", "examples": ["WAITING", "RUNNING", "SUCCESS", "FAILED", "ABORTED"], "title": "state", "type": "string", "_name_": "state", "_required_": false}, "time_started": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp when the job started execution. `null` if not yet started.", "title": "time_started", "_name_": "time_started", "_required_": false}, "time_finished": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp when the job completed execution. `null` if still running or not started.", "title": "time_finished", "_name_": "time_finished", "_required_": false}, "credential REDACTED}, {"type": "null"}], "description": "Authentication credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}}, "title": "CoreGetJobsItemQueryResultItem", "type": "object", "_attrs_order_": ["id", "message_ids", "method", "arguments", "transient", "description", "abortable", "logs_path", "logs_excerpt", "progress", "result", "result_encoding_error", "error", "exception", "exc_info", "state", "time_started", "time_finished", "credential REDACTED}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "core.get_methods": {"description": "Return methods metadata of every available service.", "cli_description": "Return methods metadata of every available service", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filters the result for a single service.", "title": "service", "_name_": "service", "_required_": false}, {"default": "WS", "description": "Target interface to get methods for.\n\n`WS` for WebSocket, `CLI` for command line, `REST` for HTTP API.", "enum": ["WS", "CLI", "REST"], "title": "target", "type": "string", "_name_": "target", "_required_": false}], "returns": [{"description": "Object mapping method names to their signatures, documentation, and metadata.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "core.get_services": {"description": "Returns a list of all registered services.", "cli_description": "Returns a list of all registered services", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"default": "WS", "description": "Target interface to get services for.\n\n`WS` for WebSocket, `CLI` for command line, `REST` for HTTP API.", "enum": ["WS", "CLI", "REST"], "title": "target", "type": "string", "_name_": "target", "_required_": false}], "returns": [{"description": "Object mapping service names to their configuration and available methods.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "core.job_abort": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "ID of the job to abort.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` when the job is successfully aborted.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "core.job_download_logs": {"description": "Download logs of the job `id`.\n\nPlease see `core.download` method documentation for explanation on `filename` and `buffered` arguments,\nand return value.", "cli_description": "Download logs of the job `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "ID of the job to download logs for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"description": "Filename for the downloaded log file.", "title": "filename", "type": "string", "_name_": "filename", "_required_": true}, {"default": false, "description": "Whether to buffer the entire log file before download.", "title": "buffered", "type": "boolean", "_name_": "buffered", "_required_": false}], "returns": [{"description": "URL for downloading the job log file.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "core.job_wait": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": [], "accepts": [{"description": "ID of the job to wait for completion.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "The result data returned by the completed job.", "title": "result", "_name_": "result", "_required_": true}]}, "core.ping": {"description": "Respond to WebSocket ping frames with \"pong\".\n\nThis endpoint can be used to keep connections alive as outlined in the WebSocket specification. It does not require authentication but is rate limited to prevent abuse.\n\nReturns:\n str: Always returns \"pong\"", "cli_description": "Respond to WebSocket ping frames with \"pong\"", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"const": "pong", "description": "Always returns `pong` to confirm system responsiveness.", "enum": ["pong"], "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "core.ping_remote": {"description": "Method that will send an ICMP echo request to \"hostname\"\nand will wait up to \"timeout\" for a reply.", "cli_description": "Method that will send an ICMP echo request to \"hostname\" and will wait up to \"timeout\" for a reply", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FULL_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"type": {"default": "ICMP", "description": "Ping protocol type to use.\n\n* `ICMP`: Auto-detect IPv4 or IPv6 based on hostname\n* `ICMPV4`: Force IPv4 ping\n* `ICMPV6`: Force IPv6 ping", "enum": ["ICMP", "ICMPV4", "ICMPV6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "hostname": {"description": "Target hostname or IP address to ping.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "timeout": {"default": 4, "description": "Timeout in seconds for each ping attempt.", "maximum": 60, "minimum": 1, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "count": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Number of ping packets to send or `null` for default.", "title": "count", "_name_": "count", "_required_": false}, "interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Network interface to use for pinging or `null` for default.", "title": "interface", "_name_": "interface", "_required_": false}, "interval": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Interval between ping packets or `null` for default.", "title": "interval", "_name_": "interval", "_required_": false}}, "required": ["hostname"], "title": "options", "type": "object", "description": "CorePingRemoteArgs parameters.", "_name_": "options", "_required_": true, "_attrs_order_": ["type", "hostname", "timeout", "count", "interface", "interval"]}], "returns": [{"description": "Returns `true` if the remote host responded to ping, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "core.resize_shell": {"description": "Resize terminal session (/websocket/shell) to cols x rows", "cli_description": "Resize terminal session (/websocket/shell) to cols x rows", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Shell session identifier.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"description": "New terminal width in columns.", "title": "cols", "type": "integer", "_name_": "cols", "_required_": true}, {"description": "New terminal height in rows.", "title": "rows", "type": "integer", "_name_": "rows", "_required_": true}], "returns": [{"description": "Returns `null` when the shell is successfully resized.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "core.set_options": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"properties": {"legacy_jobs": {"description": "Whether to enable legacy job behavior for backward compatibility.", "title": "legacy_jobs", "type": "boolean", "_name_": "legacy_jobs", "_required_": false}, "private_methods": {"description": "Whether to expose private methods in API introspection.", "title": "private_methods", "type": "boolean", "_name_": "private_methods", "_required_": false}, "py_exceptions": {"description": "Whether to include Python exception details in error responses.", "title": "py_exceptions", "type": "boolean", "_name_": "py_exceptions", "_required_": false}}, "title": "options", "type": "object", "description": "Core system options to update.", "_name_": "options", "_required_": true, "_attrs_order_": ["legacy_jobs", "private_methods", "py_exceptions"]}], "returns": [{"properties": {"legacy_jobs": {"description": "Whether to enable legacy job behavior for backward compatibility.", "title": "legacy_jobs", "type": "boolean", "_name_": "legacy_jobs", "_required_": false}, "private_methods": {"description": "Whether to expose private methods in API introspection.", "title": "private_methods", "type": "boolean", "_name_": "private_methods", "_required_": false}, "py_exceptions": {"description": "Whether to include Python exception details in error responses.", "title": "py_exceptions", "type": "boolean", "_name_": "py_exceptions", "_required_": false}}, "title": "result", "type": "object", "description": "The updated core system options.", "_name_": "result", "_required_": true, "_attrs_order_": ["legacy_jobs", "private_methods", "py_exceptions"]}]}, "core.subscribe": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Event name to subscribe to for real-time updates.", "title": "event", "type": "string", "_name_": "event", "_required_": true}], "returns": [{"description": "CoreSubscribeResult return fields.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "core.unsubscribe": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Subscription ID to cancel.", "title": "id_", "type": "string", "_name_": "id_", "_required_": true}], "returns": [{"description": "CoreUnsubscribeResult return fields.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "acme.dns.authenticator.authenticator_schemas": {"description": "Get the schemas for all DNS providers we support for ACME DNS Challenge and the respective attributes\nrequired for connecting to them while validating a DNS Challenge", "cli_description": "Get the schemas for all DNS providers we support for ACME DNS Challenge and the respective attributes required for connecting to them while validating a DNS Challenge", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Available DNS authenticator schemas with their configuration requirements.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "Unique identifier for the DNS authenticator type.", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "schema": {"additionalProperties": true, "properties": {"_name_": {"description": "Internal name of the schema attribute.", "title": "_name_", "type": "string", "_name_": "_name_", "_required_": true}, "title": {"description": "Human-readable title for the schema attribute.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "_required_": {"description": "Whether this attribute is required for the authenticator.", "title": "_required_", "type": "boolean", "_name_": "_required_", "_required_": true}}, "required": ["_name_", "title", "_required_"], "title": "schema", "type": "object", "description": "Schema definition for the authenticator's required attributes.", "_name_": "schema", "_required_": true, "_attrs_order_": ["_name_", "title", "_required_"]}}, "required": ["key", "schema"], "title": "ACMEDNSAuthenticatorSchema", "type": "object", "_attrs_order_": ["key", "schema"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "acme.dns.authenticator.create": {"description": "Create a DNS Authenticator\n\nCreate a specific DNS Authenticator containing required authentication details for the said\nprovider to successfully connect with it\n\n", "cli_description": "Create a DNS Authenticator", "examples": {"websocket": ["\n\n Create a DNS Authenticator for Route53\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"acme.dns.authenticator.create\",\n \"params\": [{\n \"name\": \"route53_authenticator\",\n \"attributes\": {\n \"access_key_id\": \"AQX13\",\n \"secret REDACTED,\n \"authenticator\": \"route53\"\n }\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{"additionalProperties": false, "properties": {"authenticator": {"const": "cloudflare", "description": "DNS authenticator type identifier for Cloudflare.", "enum": ["cloudflare"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "cloudflare_email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Cloudflare Email.", "title": "cloudflare_email", "_name_": "cloudflare_email", "_required_": false}, "api_key REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Key.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}, "api_token REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Token REDACTED, "title": "api_token REDACTED, "_name_": "api_token REDACTED, "_required_": false}}, "required": ["authenticator"], "title": "CloudFlareSchema", "type": "object", "_attrs_order_": ["authenticator", "cloudflare_email", "api_key REDACTED, "api_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "digitalocean", "description": "DNS authenticator type identifier for DigitalOcean.", "enum": ["digitalocean"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "digitalocean_token REDACTED, "minLength": 1, "title": "digitalocean_token REDACTED, "type": "string", "_name_": "digitalocean_token REDACTED, "_required_": true}}, "required": ["authenticator", "digitalocean_token REDACTED, "title": "DigitalOceanSchema", "type": "object", "_attrs_order_": ["authenticator", "digitalocean_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "OVH", "description": "DNS authenticator type identifier for OVH.", "enum": ["OVH"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "application_key": {"description": "OVH Application Key.", "minLength": 1, "title": "application_key", "type": "string", "_name_": "application_key", "_required_": true}, "application_secret REDACTED, "minLength": 1, "title": "application_secret REDACTED, "type": "string", "_name_": "application_secret REDACTED, "_required_": true}, "consumer_key": {"description": "OVH Consumer Key.", "minLength": 1, "title": "consumer_key", "type": "string", "_name_": "consumer_key", "_required_": true}, "endpoint": {"description": "OVH Endpoint.", "enum": ["ovh-eu", "ovh-ca", "ovh-us", "kimsufi-eu", "kimsufi-ca", "soyoustart-eu", "soyoustart-ca"], "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": true}}, "required": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"], "title": "OVHSchema", "type": "object", "_attrs_order_": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"]}, {"additionalProperties": false, "properties": {"authenticator": {"const": "route53", "description": "DNS authenticator type identifier for AWS Route 53.", "enum": ["route53"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "access_key_id": {"description": "AWS Access Key ID.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}}, "required": ["authenticator", "access_key_id", "secret REDACTED, "title": "Route53Schema", "type": "object", "_attrs_order_": ["authenticator", "access_key_id", "secret REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "shell", "description": "DNS authenticator type identifier for custom shell scripts.", "enum": ["shell"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "script": {"description": "Authentication Script.", "format": "file-path", "title": "script", "type": "string", "_name_": "script", "_required_": true}, "user": {"default": "nobody", "description": "Running user.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": false}, "timeout": {"default": 60, "description": "Script Timeout.", "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "delay": {"default": 60, "description": "Propagation delay.", "minimum": 10, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}}, "required": ["authenticator", "script"], "title": "ShellSchema", "type": "object", "_attrs_order_": ["authenticator", "script", "user", "timeout", "delay"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["attributes", "name"], "title": "dns_authenticator_create", "type": "object", "description": "DNSAuthenticatorCreateArgs parameters.", "_name_": "dns_authenticator_create", "_required_": true, "_attrs_order_": ["attributes", "name"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the DNS authenticator.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{"additionalProperties": false, "properties": {"authenticator": {"const": "cloudflare", "description": "DNS authenticator type identifier for Cloudflare.", "enum": ["cloudflare"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "cloudflare_email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Cloudflare Email.", "title": "cloudflare_email", "_name_": "cloudflare_email", "_required_": false}, "api_key REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Key.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}, "api_token REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Token REDACTED, "title": "api_token REDACTED, "_name_": "api_token REDACTED, "_required_": false}}, "required": ["authenticator"], "title": "CloudFlareSchema", "type": "object", "_attrs_order_": ["authenticator", "cloudflare_email", "api_key REDACTED, "api_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "digitalocean", "description": "DNS authenticator type identifier for DigitalOcean.", "enum": ["digitalocean"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "digitalocean_token REDACTED, "minLength": 1, "title": "digitalocean_token REDACTED, "type": "string", "_name_": "digitalocean_token REDACTED, "_required_": true}}, "required": ["authenticator", "digitalocean_token REDACTED, "title": "DigitalOceanSchema", "type": "object", "_attrs_order_": ["authenticator", "digitalocean_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "OVH", "description": "DNS authenticator type identifier for OVH.", "enum": ["OVH"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "application_key": {"description": "OVH Application Key.", "minLength": 1, "title": "application_key", "type": "string", "_name_": "application_key", "_required_": true}, "application_secret REDACTED, "minLength": 1, "title": "application_secret REDACTED, "type": "string", "_name_": "application_secret REDACTED, "_required_": true}, "consumer_key": {"description": "OVH Consumer Key.", "minLength": 1, "title": "consumer_key", "type": "string", "_name_": "consumer_key", "_required_": true}, "endpoint": {"description": "OVH Endpoint.", "enum": ["ovh-eu", "ovh-ca", "ovh-us", "kimsufi-eu", "kimsufi-ca", "soyoustart-eu", "soyoustart-ca"], "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": true}}, "required": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"], "title": "OVHSchema", "type": "object", "_attrs_order_": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"]}, {"additionalProperties": false, "properties": {"authenticator": {"const": "route53", "description": "DNS authenticator type identifier for AWS Route 53.", "enum": ["route53"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "access_key_id": {"description": "AWS Access Key ID.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}}, "required": ["authenticator", "access_key_id", "secret REDACTED, "title": "Route53Schema", "type": "object", "_attrs_order_": ["authenticator", "access_key_id", "secret REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "shell", "description": "DNS authenticator type identifier for custom shell scripts.", "enum": ["shell"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "script": {"description": "Authentication Script.", "format": "file-path", "title": "script", "type": "string", "_name_": "script", "_required_": true}, "user": {"default": "nobody", "description": "Running user.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": false}, "timeout": {"default": 60, "description": "Script Timeout.", "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "delay": {"default": 60, "description": "Propagation delay.", "minimum": 10, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}}, "required": ["authenticator", "script"], "title": "ShellSchema", "type": "object", "_attrs_order_": ["authenticator", "script", "user", "timeout", "delay"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "attributes", "name"], "title": "result", "type": "object", "description": "The created DNS authenticator configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "attributes", "name"]}]}, "acme.dns.authenticator.delete": {"description": "Delete DNS Authenticator of `id`\n\n", "cli_description": "Delete DNS Authenticator of `id`", "examples": {"websocket": ["\n\n Delete a DNS Authenticator of `id`\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"acme.dns.authenticator.delete\",\n \"params\": [\n 1\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"description": "ID of the DNS authenticator to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `true` when the DNS authenticator is successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "acme.dns.authenticator.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the DNS authenticator.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{"additionalProperties": false, "properties": {"authenticator": {"const": "cloudflare", "description": "DNS authenticator type identifier for Cloudflare.", "enum": ["cloudflare"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "cloudflare_email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Cloudflare Email.", "title": "cloudflare_email", "_name_": "cloudflare_email", "_required_": false}, "api_key REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Key.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}, "api_token REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Token REDACTED, "title": "api_token REDACTED, "_name_": "api_token REDACTED, "_required_": false}}, "required": ["authenticator"], "title": "CloudFlareSchema", "type": "object", "_attrs_order_": ["authenticator", "cloudflare_email", "api_key REDACTED, "api_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "digitalocean", "description": "DNS authenticator type identifier for DigitalOcean.", "enum": ["digitalocean"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "digitalocean_token REDACTED, "minLength": 1, "title": "digitalocean_token REDACTED, "type": "string", "_name_": "digitalocean_token REDACTED, "_required_": true}}, "required": ["authenticator", "digitalocean_token REDACTED, "title": "DigitalOceanSchema", "type": "object", "_attrs_order_": ["authenticator", "digitalocean_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "OVH", "description": "DNS authenticator type identifier for OVH.", "enum": ["OVH"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "application_key": {"description": "OVH Application Key.", "minLength": 1, "title": "application_key", "type": "string", "_name_": "application_key", "_required_": true}, "application_secret REDACTED, "minLength": 1, "title": "application_secret REDACTED, "type": "string", "_name_": "application_secret REDACTED, "_required_": true}, "consumer_key": {"description": "OVH Consumer Key.", "minLength": 1, "title": "consumer_key", "type": "string", "_name_": "consumer_key", "_required_": true}, "endpoint": {"description": "OVH Endpoint.", "enum": ["ovh-eu", "ovh-ca", "ovh-us", "kimsufi-eu", "kimsufi-ca", "soyoustart-eu", "soyoustart-ca"], "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": true}}, "required": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"], "title": "OVHSchema", "type": "object", "_attrs_order_": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"]}, {"additionalProperties": false, "properties": {"authenticator": {"const": "route53", "description": "DNS authenticator type identifier for AWS Route 53.", "enum": ["route53"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "access_key_id": {"description": "AWS Access Key ID.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}}, "required": ["authenticator", "access_key_id", "secret REDACTED, "title": "Route53Schema", "type": "object", "_attrs_order_": ["authenticator", "access_key_id", "secret REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "shell", "description": "DNS authenticator type identifier for custom shell scripts.", "enum": ["shell"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "script": {"description": "Authentication Script.", "format": "file-path", "title": "script", "type": "string", "_name_": "script", "_required_": true}, "user": {"default": "nobody", "description": "Running user.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": false}, "timeout": {"default": 60, "description": "Script Timeout.", "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "delay": {"default": 60, "description": "Propagation delay.", "minimum": 10, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}}, "required": ["authenticator", "script"], "title": "ShellSchema", "type": "object", "_attrs_order_": ["authenticator", "script", "user", "timeout", "delay"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "attributes", "name"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "attributes", "name"]}]}, "acme.dns.authenticator.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the DNS authenticator.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{"additionalProperties": false, "properties": {"authenticator": {"const": "cloudflare", "description": "DNS authenticator type identifier for Cloudflare.", "enum": ["cloudflare"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "cloudflare_email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Cloudflare Email.", "title": "cloudflare_email", "_name_": "cloudflare_email", "_required_": false}, "api_key REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Key.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}, "api_token REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Token REDACTED, "title": "api_token REDACTED, "_name_": "api_token REDACTED, "_required_": false}}, "required": ["authenticator"], "title": "CloudFlareSchema", "type": "object", "_attrs_order_": ["authenticator", "cloudflare_email", "api_key REDACTED, "api_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "digitalocean", "description": "DNS authenticator type identifier for DigitalOcean.", "enum": ["digitalocean"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "digitalocean_token REDACTED, "minLength": 1, "title": "digitalocean_token REDACTED, "type": "string", "_name_": "digitalocean_token REDACTED, "_required_": true}}, "required": ["authenticator", "digitalocean_token REDACTED, "title": "DigitalOceanSchema", "type": "object", "_attrs_order_": ["authenticator", "digitalocean_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "OVH", "description": "DNS authenticator type identifier for OVH.", "enum": ["OVH"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "application_key": {"description": "OVH Application Key.", "minLength": 1, "title": "application_key", "type": "string", "_name_": "application_key", "_required_": true}, "application_secret REDACTED, "minLength": 1, "title": "application_secret REDACTED, "type": "string", "_name_": "application_secret REDACTED, "_required_": true}, "consumer_key": {"description": "OVH Consumer Key.", "minLength": 1, "title": "consumer_key", "type": "string", "_name_": "consumer_key", "_required_": true}, "endpoint": {"description": "OVH Endpoint.", "enum": ["ovh-eu", "ovh-ca", "ovh-us", "kimsufi-eu", "kimsufi-ca", "soyoustart-eu", "soyoustart-ca"], "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": true}}, "required": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"], "title": "OVHSchema", "type": "object", "_attrs_order_": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"]}, {"additionalProperties": false, "properties": {"authenticator": {"const": "route53", "description": "DNS authenticator type identifier for AWS Route 53.", "enum": ["route53"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "access_key_id": {"description": "AWS Access Key ID.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}}, "required": ["authenticator", "access_key_id", "secret REDACTED, "title": "Route53Schema", "type": "object", "_attrs_order_": ["authenticator", "access_key_id", "secret REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "shell", "description": "DNS authenticator type identifier for custom shell scripts.", "enum": ["shell"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "script": {"description": "Authentication Script.", "format": "file-path", "title": "script", "type": "string", "_name_": "script", "_required_": true}, "user": {"default": "nobody", "description": "Running user.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": false}, "timeout": {"default": 60, "description": "Script Timeout.", "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "delay": {"default": 60, "description": "Propagation delay.", "minimum": 10, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}}, "required": ["authenticator", "script"], "title": "ShellSchema", "type": "object", "_attrs_order_": ["authenticator", "script", "user", "timeout", "delay"]}], "title": "attributes", "_name_": "attributes", "_required_": false}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "ACMEDNSAuthenticatorQueryResultItem", "type": "object", "_attrs_order_": ["id", "attributes", "name"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the DNS authenticator.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{}, {}, {}, {}, {}], "title": "attributes", "_name_": "attributes", "_required_": false}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "ACMEDNSAuthenticatorQueryResultItem", "type": "object", "_attrs_order_": ["id", "attributes", "name"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "acme.dns.authenticator.update": {"description": "Update DNS Authenticator of `id`\n\n", "cli_description": "Update DNS Authenticator of `id`", "examples": {"websocket": ["\n\n Update a DNS Authenticator of `id`\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"acme.dns.authenticator.update\",\n \"params\": [\n 1,\n {\n \"name\": \"route53_authenticator\",\n \"attributes\": {\n \"access_key_id\": \"AQX13\",\n \"secret REDACTED,\n \"authenticator\": \"route53\"\n }\n }\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"description": "ID of the DNS authenticator to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{"additionalProperties": false, "properties": {"authenticator": {"const": "cloudflare", "description": "DNS authenticator type identifier for Cloudflare.", "enum": ["cloudflare"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "cloudflare_email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Cloudflare Email.", "title": "cloudflare_email", "_name_": "cloudflare_email", "_required_": false}, "api_key REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Key.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}, "api_token REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Token REDACTED, "title": "api_token REDACTED, "_name_": "api_token REDACTED, "_required_": false}}, "required": ["authenticator"], "title": "CloudFlareSchema", "type": "object", "_attrs_order_": ["authenticator", "cloudflare_email", "api_key REDACTED, "api_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "digitalocean", "description": "DNS authenticator type identifier for DigitalOcean.", "enum": ["digitalocean"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "digitalocean_token REDACTED, "minLength": 1, "title": "digitalocean_token REDACTED, "type": "string", "_name_": "digitalocean_token REDACTED, "_required_": true}}, "required": ["authenticator", "digitalocean_token REDACTED, "title": "DigitalOceanSchema", "type": "object", "_attrs_order_": ["authenticator", "digitalocean_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "OVH", "description": "DNS authenticator type identifier for OVH.", "enum": ["OVH"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "application_key": {"description": "OVH Application Key.", "minLength": 1, "title": "application_key", "type": "string", "_name_": "application_key", "_required_": true}, "application_secret REDACTED, "minLength": 1, "title": "application_secret REDACTED, "type": "string", "_name_": "application_secret REDACTED, "_required_": true}, "consumer_key": {"description": "OVH Consumer Key.", "minLength": 1, "title": "consumer_key", "type": "string", "_name_": "consumer_key", "_required_": true}, "endpoint": {"description": "OVH Endpoint.", "enum": ["ovh-eu", "ovh-ca", "ovh-us", "kimsufi-eu", "kimsufi-ca", "soyoustart-eu", "soyoustart-ca"], "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": true}}, "required": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"], "title": "OVHSchema", "type": "object", "_attrs_order_": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"]}, {"additionalProperties": false, "properties": {"authenticator": {"const": "route53", "description": "DNS authenticator type identifier for AWS Route 53.", "enum": ["route53"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "access_key_id": {"description": "AWS Access Key ID.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}}, "required": ["authenticator", "access_key_id", "secret REDACTED, "title": "Route53Schema", "type": "object", "_attrs_order_": ["authenticator", "access_key_id", "secret REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "shell", "description": "DNS authenticator type identifier for custom shell scripts.", "enum": ["shell"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "script": {"description": "Authentication Script.", "format": "file-path", "title": "script", "type": "string", "_name_": "script", "_required_": true}, "user": {"default": "nobody", "description": "Running user.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": false}, "timeout": {"default": 60, "description": "Script Timeout.", "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "delay": {"default": 60, "description": "Propagation delay.", "minimum": 10, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}}, "required": ["authenticator", "script"], "title": "ShellSchema", "type": "object", "_attrs_order_": ["authenticator", "script", "user", "timeout", "delay"]}], "title": "attributes", "_name_": "attributes", "_required_": false}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "dns_authenticator_update", "type": "object", "description": "Updated DNS authenticator configuration data.", "_name_": "dns_authenticator_update", "_required_": true, "_attrs_order_": ["attributes", "name"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the DNS authenticator.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Authentication credential REDACTED, "discriminator": {"mapping": {"OVH": "#/$defs/OVHSchema", "cloudflare": "#/$defs/CloudFlareSchema", "digitalocean": "#/$defs/DigitalOceanSchema", "route53": "#/$defs/Route53Schema", "shell": "#/$defs/ShellSchema"}, "propertyName": "authenticator"}, "oneOf": [{"additionalProperties": false, "properties": {"authenticator": {"const": "cloudflare", "description": "DNS authenticator type identifier for Cloudflare.", "enum": ["cloudflare"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "cloudflare_email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Cloudflare Email.", "title": "cloudflare_email", "_name_": "cloudflare_email", "_required_": false}, "api_key REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Key.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}, "api_token REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "API Token REDACTED, "title": "api_token REDACTED, "_name_": "api_token REDACTED, "_required_": false}}, "required": ["authenticator"], "title": "CloudFlareSchema", "type": "object", "_attrs_order_": ["authenticator", "cloudflare_email", "api_key REDACTED, "api_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "digitalocean", "description": "DNS authenticator type identifier for DigitalOcean.", "enum": ["digitalocean"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "digitalocean_token REDACTED, "minLength": 1, "title": "digitalocean_token REDACTED, "type": "string", "_name_": "digitalocean_token REDACTED, "_required_": true}}, "required": ["authenticator", "digitalocean_token REDACTED, "title": "DigitalOceanSchema", "type": "object", "_attrs_order_": ["authenticator", "digitalocean_token REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "OVH", "description": "DNS authenticator type identifier for OVH.", "enum": ["OVH"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "application_key": {"description": "OVH Application Key.", "minLength": 1, "title": "application_key", "type": "string", "_name_": "application_key", "_required_": true}, "application_secret REDACTED, "minLength": 1, "title": "application_secret REDACTED, "type": "string", "_name_": "application_secret REDACTED, "_required_": true}, "consumer_key": {"description": "OVH Consumer Key.", "minLength": 1, "title": "consumer_key", "type": "string", "_name_": "consumer_key", "_required_": true}, "endpoint": {"description": "OVH Endpoint.", "enum": ["ovh-eu", "ovh-ca", "ovh-us", "kimsufi-eu", "kimsufi-ca", "soyoustart-eu", "soyoustart-ca"], "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": true}}, "required": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"], "title": "OVHSchema", "type": "object", "_attrs_order_": ["authenticator", "application_key", "application_secret REDACTED, "consumer_key", "endpoint"]}, {"additionalProperties": false, "properties": {"authenticator": {"const": "route53", "description": "DNS authenticator type identifier for AWS Route 53.", "enum": ["route53"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "access_key_id": {"description": "AWS Access Key ID.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}}, "required": ["authenticator", "access_key_id", "secret REDACTED, "title": "Route53Schema", "type": "object", "_attrs_order_": ["authenticator", "access_key_id", "secret REDACTED}, {"additionalProperties": false, "properties": {"authenticator": {"const": "shell", "description": "DNS authenticator type identifier for custom shell scripts.", "enum": ["shell"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}, "script": {"description": "Authentication Script.", "format": "file-path", "title": "script", "type": "string", "_name_": "script", "_required_": true}, "user": {"default": "nobody", "description": "Running user.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": false}, "timeout": {"default": 60, "description": "Script Timeout.", "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "delay": {"default": 60, "description": "Propagation delay.", "minimum": 10, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}}, "required": ["authenticator", "script"], "title": "ShellSchema", "type": "object", "_attrs_order_": ["authenticator", "script", "user", "timeout", "delay"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "name": {"description": "Human-readable name for the DNS authenticator.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "attributes", "name"], "title": "result", "type": "object", "description": "The updated DNS authenticator configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "attributes", "name"]}]}, "alert.dismiss": {"description": "Dismiss `id` alert.", "cli_description": "Dismiss `id` alert", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_LIST_WRITE", "ALERT_WRITE"], "accepts": [{"description": "UUID of the alert to dismiss.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}], "returns": [{"description": "Returns `null` when the alert is successfully dismissed.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "alert.list": {"description": "List all types of alerts including active/dismissed currently in the system.", "cli_description": "List all types of alerts including active/dismissed currently in the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_LIST_READ", "ALERT_LIST_WRITE", "ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of all current alerts in the system.", "items": [{"additionalProperties": false, "properties": {"uuid": {"description": "Unique identifier for the alert.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}, "source": {"description": "Source component that generated the alert.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "klass": {"description": "Alert class identifier for categorization.", "title": "klass", "type": "string", "_name_": "klass", "_required_": true}, "args": {"description": "Arguments and parameters specific to the alert type.", "title": "args", "_name_": "args", "_required_": true}, "node": {"description": "Node identifier in HA systems or hostname for single-node systems.", "title": "node", "type": "string", "_name_": "node", "_required_": true}, "key": {"description": "Unique key used for alert deduplication and identification.", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "datetime": {"description": "Timestamp when the alert was first created.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "last_occurrence": {"description": "Timestamp of the most recent occurrence of this alert.", "format": "date-time", "title": "last_occurrence", "type": "string", "_name_": "last_occurrence", "_required_": true}, "dismissed": {"description": "Whether the alert has been manually dismissed by a user.", "title": "dismissed", "type": "boolean", "_name_": "dismissed", "_required_": true}, "mail": {"description": "Email notification configuration and status for this alert.", "title": "mail", "_name_": "mail", "_required_": true}, "text": {"description": "Human-readable description of the alert.", "title": "text", "type": "string", "_name_": "text", "_required_": true}, "id": {"description": "Alert identifier used for API operations.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "level": {"description": "Severity level of the alert (INFO, WARNING, ERROR, etc.).", "title": "level", "type": "string", "_name_": "level", "_required_": true}, "formatted": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Formatted alert message with HTML.", "title": "formatted", "_name_": "formatted", "_required_": true}, "one_shot": {"description": "Whether this alert will not be dismissed automatically.", "title": "one_shot", "type": "boolean", "_name_": "one_shot", "_required_": true}}, "required": ["uuid", "source", "klass", "args", "node", "key", "datetime", "last_occurrence", "dismissed", "mail", "text", "id", "level", "formatted", "one_shot"], "title": "Alert", "type": "object", "_attrs_order_": ["uuid", "source", "klass", "args", "node", "key", "datetime", "last_occurrence", "dismissed", "mail", "text", "id", "level", "formatted", "one_shot"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "alert.list_categories": {"description": "List all types of alerts which the system can issue.", "cli_description": "List all types of alerts which the system can issue", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_LIST_READ", "ALERT_LIST_WRITE", "ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available alert categories and their classes.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the alert category.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "title": {"description": "Human-readable title for the alert category.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "classes": {"description": "Array of alert classes within this category.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the alert class.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "title": {"description": "Human-readable title for the alert class.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "level": {"description": "Default severity level for alerts in this class.", "title": "level", "type": "string", "_name_": "level", "_required_": true}, "proactive_support": {"description": "Whether this alert class is included in proactive support monitoring.", "title": "proactive_support", "type": "boolean", "_name_": "proactive_support", "_required_": true}}, "required": ["id", "title", "level", "proactive_support"], "title": "AlertCategoryClass", "type": "object", "_attrs_order_": ["id", "title", "level", "proactive_support"]}], "title": "classes", "type": "array", "_name_": "classes", "_required_": true}}, "required": ["id", "title", "classes"], "title": "AlertCategory", "type": "object", "_attrs_order_": ["id", "title", "classes"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "alert.list_policies": {"description": "List all alert policies which indicate the frequency of the alerts.", "cli_description": "List all alert policies which indicate the frequency of the alerts", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_LIST_READ", "ALERT_LIST_WRITE", "ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available notification policies for alert classes.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "alert.restore": {"description": "Restore `id` alert which had been dismissed.", "cli_description": "Restore `id` alert which had been dismissed", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_LIST_WRITE", "ALERT_WRITE"], "accepts": [{"description": "UUID of the dismissed alert to restore.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}], "returns": [{"description": "Returns `null` when the alert is successfully restored.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "alertclasses.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the alert classes configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "classes": {"additionalProperties": {"additionalProperties": false, "properties": {"level": {"description": "Severity level for alerts of this class.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": false}, "policy": {"description": "Notification policy for alerts of this class.\n\n* `IMMEDIATELY`: Send notifications as soon as alerts occur\n* `HOURLY`: Batch notifications and send hourly\n* `DAILY`: Batch notifications and send daily\n* `NEVER`: Do not send notifications for this alert class", "enum": ["IMMEDIATELY", "HOURLY", "DAILY", "NEVER"], "title": "policy", "type": "string", "_name_": "policy", "_required_": false}, "proactive_support": {"description": "Whether to include alerts of this class in proactive support reporting.", "title": "proactive_support", "type": "boolean", "_name_": "proactive_support", "_required_": false}}, "title": "AlertClassConfiguration", "type": "object", "_attrs_order_": ["level", "policy", "proactive_support"]}, "description": "Object mapping alert class names to their configuration settings.", "title": "classes", "type": "object", "_name_": "classes", "_required_": true}}, "required": ["id", "classes"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "classes"]}]}, "alertclasses.update": {"description": "Update default Alert settings.\n\n", "cli_description": "Update default Alert settings", "examples": {"rest": ["\n\nSet ClassName's level to LEVEL and policy to POLICY. Reset settings for other alert classes.\n\n{\n \"classes\": {\n \"ClassName\": {\n \"level\": \"LEVEL\",\n \"policy\": \"POLICY\",\n }\n }\n}"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"classes": {"additionalProperties": {"additionalProperties": false, "properties": {"level": {"description": "Severity level for alerts of this class.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": false}, "policy": {"description": "Notification policy for alerts of this class.\n\n* `IMMEDIATELY`: Send notifications as soon as alerts occur\n* `HOURLY`: Batch notifications and send hourly\n* `DAILY`: Batch notifications and send daily\n* `NEVER`: Do not send notifications for this alert class", "enum": ["IMMEDIATELY", "HOURLY", "DAILY", "NEVER"], "title": "policy", "type": "string", "_name_": "policy", "_required_": false}, "proactive_support": {"description": "Whether to include alerts of this class in proactive support reporting.", "title": "proactive_support", "type": "boolean", "_name_": "proactive_support", "_required_": false}}, "title": "AlertClassConfiguration", "type": "object", "_attrs_order_": ["level", "policy", "proactive_support"]}, "description": "Object mapping alert class names to their configuration settings.", "title": "classes", "type": "object", "_name_": "classes", "_required_": false}}, "title": "alert_class_update", "type": "object", "description": "Updated alert class configuration settings.", "_name_": "alert_class_update", "_required_": true, "_attrs_order_": ["classes"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the alert classes configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "classes": {"additionalProperties": {"additionalProperties": false, "properties": {"level": {"description": "Severity level for alerts of this class.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": false}, "policy": {"description": "Notification policy for alerts of this class.\n\n* `IMMEDIATELY`: Send notifications as soon as alerts occur\n* `HOURLY`: Batch notifications and send hourly\n* `DAILY`: Batch notifications and send daily\n* `NEVER`: Do not send notifications for this alert class", "enum": ["IMMEDIATELY", "HOURLY", "DAILY", "NEVER"], "title": "policy", "type": "string", "_name_": "policy", "_required_": false}, "proactive_support": {"description": "Whether to include alerts of this class in proactive support reporting.", "title": "proactive_support", "type": "boolean", "_name_": "proactive_support", "_required_": false}}, "title": "AlertClassConfiguration", "type": "object", "_attrs_order_": ["level", "policy", "proactive_support"]}, "description": "Object mapping alert class names to their configuration settings.", "title": "classes", "type": "object", "_name_": "classes", "_required_": true}}, "required": ["id", "classes"], "title": "result", "type": "object", "description": "The updated alert classes configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "classes"]}]}, "alertservice.create": {"description": "Create an Alert Service of specified `type`.\n\nIf `enabled`, it sends alerts to the configured `type` of Alert Service.", "cli_description": "Create an Alert Service of specified `type`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": true}, "enabled": {"default": true, "description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["name", "attributes", "level"], "title": "alert_service_create", "type": "object", "description": "Alert service configuration data for the new service.", "_name_": "alert_service_create", "_required_": true, "_attrs_order_": ["name", "attributes", "level", "enabled"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": true}, "enabled": {"default": true, "description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the alert service.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "type__title": {"description": "Human-readable title for the alert service type.", "title": "type__title", "type": "string", "_name_": "type__title", "_required_": true}}, "required": ["name", "attributes", "level", "id", "type__title"], "title": "result", "type": "object", "description": "The created alert service configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "attributes", "level", "enabled", "id", "type__title"]}]}, "alertservice.delete": {"description": "Delete Alert Service of `id`.", "cli_description": "Delete Alert Service of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_WRITE"], "accepts": [{"description": "ID of the alert service to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `true` when the alert service is successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "alertservice.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": true}, "enabled": {"default": true, "description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the alert service.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "type__title": {"description": "Human-readable title for the alert service type.", "title": "type__title", "type": "string", "_name_": "type__title", "_required_": true}}, "required": ["name", "attributes", "level", "id", "type__title"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "attributes", "level", "enabled", "id", "type__title"]}]}, "alertservice.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": false}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": false}, "enabled": {"description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the alert service.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "type__title": {"description": "Human-readable title for the alert service type.", "title": "type__title", "type": "string", "_name_": "type__title", "_required_": false}}, "title": "AlertServiceQueryResultItem", "type": "object", "_attrs_order_": ["name", "attributes", "level", "enabled", "id", "type__title"]}], "type": "array"}, {"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}], "title": "attributes", "_name_": "attributes", "_required_": false}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": false}, "enabled": {"description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the alert service.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "type__title": {"description": "Human-readable title for the alert service type.", "title": "type__title", "type": "string", "_name_": "type__title", "_required_": false}}, "title": "AlertServiceQueryResultItem", "type": "object", "_attrs_order_": ["name", "attributes", "level", "enabled", "id", "type__title"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "alertservice.test": {"description": "Send a test alert using `type` of Alert Service.", "cli_description": "Send a test alert using `type` of Alert Service", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": true}, "enabled": {"default": true, "description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["name", "attributes", "level"], "title": "alert_service_create", "type": "object", "description": "Alert service configuration to test for connectivity and functionality.", "_name_": "alert_service_create", "_required_": true, "_attrs_order_": ["name", "attributes", "level", "enabled"]}], "returns": [{"description": "Returns `true` if the alert service test was successful.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "alertservice.update": {"description": "Update Alert Service of `id`.", "cli_description": "Update Alert Service of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_WRITE"], "accepts": [{"description": "ID of the alert service to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": true}, "enabled": {"default": true, "description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["name", "attributes", "level"], "title": "alert_service_update", "type": "object", "description": "Updated alert service configuration data.", "_name_": "alert_service_update", "_required_": true, "_attrs_order_": ["name", "attributes", "level", "enabled"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the alert service.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "attributes": {"description": "Service-specific configuration attributes (credential REDACTED, endpoints, etc.).", "discriminator": {"mapping": {"AWSSNS": "#/$defs/AWSSNSServiceModel", "InfluxDB": "#/$defs/InfluxDBServiceModel", "Mail": "#/$defs/MailServiceModel", "Mattermost": "#/$defs/MattermostServiceModel", "OpsGenie": "#/$defs/OpsGenieServiceModel", "PagerDuty": "#/$defs/PagerDutyServiceModel", "SNMPTrap": "#/$defs/SNMPTrapServiceModel", "Slack": "#/$defs/SlackServiceModel", "Telegram": "#/$defs/TelegramServiceModel", "VictorOps": "#/$defs/VictorOpsServiceModel"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AWSSNS", "description": "Alert service type identifier for Amazon SNS.", "enum": ["AWSSNS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "region": {"description": "AWS region where the SNS topic is located.", "minLength": 1, "title": "region", "type": "string", "_name_": "region", "_required_": true}, "topic_arn": {"description": "Amazon Resource Name (ARN) of the SNS topic to publish alerts to.", "minLength": 1, "title": "topic_arn", "type": "string", "_name_": "topic_arn", "_required_": true}, "aws_access_key_id": {"description": "AWS access key ID for authentication.", "minLength": 1, "title": "aws_access_key_id", "type": "string", "_name_": "aws_access_key_id", "_required_": true}, "aws_secret REDACTED, "minLength": 1, "title": "aws_secret REDACTED, "type": "string", "_name_": "aws_secret REDACTED, "_required_": true}}, "required": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED, "title": "AWSSNSServiceModel", "type": "object", "_attrs_order_": ["type", "region", "topic_arn", "aws_access_key_id", "aws_secret REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "InfluxDB", "description": "Alert service type identifier for InfluxDB.", "enum": ["InfluxDB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "InfluxDB server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "username": {"description": "Username for InfluxDB authentication.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "database": {"description": "InfluxDB database name to store alert data.", "minLength": 1, "title": "database", "type": "string", "_name_": "database", "_required_": true}, "series_name": {"description": "Name of the time series to store alert events.", "minLength": 1, "title": "series_name", "type": "string", "_name_": "series_name", "_required_": true}}, "required": ["type", "host", "username", "password REDACTED, "database", "series_name"], "title": "InfluxDBServiceModel", "type": "object", "_attrs_order_": ["type", "host", "username", "password REDACTED, "database", "series_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mail", "description": "Alert service type identifier for email notifications.", "enum": ["Mail"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "email": {"default": "", "description": "Email address to send alerts to. Empty string uses system default.", "title": "email", "type": "string", "_name_": "email", "_required_": false}}, "required": ["type"], "title": "MailServiceModel", "type": "object", "_attrs_order_": ["type", "email"]}, {"additionalProperties": false, "properties": {"type": {"const": "Mattermost", "description": "Alert service type identifier for Mattermost.", "enum": ["Mattermost"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Mattermost webhook URL for posting alerts.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "username": {"description": "Username to display when posting alerts to Mattermost.", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "channel": {"default": "", "description": "Mattermost channel name to post alerts to. Empty string uses webhook default.", "title": "channel", "type": "string", "_name_": "channel", "_required_": false}, "icon_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "URL of icon image to display with alert messages. Empty string uses default.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["type", "url", "username"], "title": "MattermostServiceModel", "type": "object", "_attrs_order_": ["type", "url", "username", "channel", "icon_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "OpsGenie", "description": "Alert service type identifier for OpsGenie.", "enum": ["OpsGenie"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "api_url": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "OpsGenie API URL. Empty string uses default OpsGenie endpoint.", "title": "api_url", "_name_": "api_url", "_required_": false}}, "required": ["type", "api_key REDACTED, "title": "OpsGenieServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "api_url"]}, {"additionalProperties": false, "properties": {"type": {"const": "PagerDuty", "description": "Alert service type identifier for PagerDuty.", "enum": ["PagerDuty"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_key": {"description": "PagerDuty service integration key for sending alerts.", "minLength": 1, "title": "service_key", "type": "string", "_name_": "service_key", "_required_": true}, "client_name": {"description": "Client name to identify the source of alerts in PagerDuty.", "minLength": 1, "title": "client_name", "type": "string", "_name_": "client_name", "_required_": true}}, "required": ["type", "service_key", "client_name"], "title": "PagerDutyServiceModel", "type": "object", "_attrs_order_": ["type", "service_key", "client_name"]}, {"additionalProperties": false, "properties": {"type": {"const": "Slack", "description": "Alert service type identifier for Slack.", "enum": ["Slack"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "Slack webhook URL for posting alert messages.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "SlackServiceModel", "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "SNMPTrap", "description": "Alert service type identifier for SNMP traps.", "enum": ["SNMPTrap"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SNMP trap receiver hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"description": "TCP port number for SNMP trap receiver.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "v3": {"description": "Whether to use SNMP v3 instead of v1/v2c.", "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP community string for v1/v2c authentication or `null` for v3.", "title": "community", "_name_": "community", "_required_": false}, "v3_username": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 username for authentication or `null` for v1/v2c.", "title": "v3_username", "_name_": "v3_username", "_required_": false}, "v3_authkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 authentication key or `null` if not using authentication.", "title": "v3_authkey", "_name_": "v3_authkey", "_required_": false}, "v3_privkey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "SNMP v3 privacy key for encryption or `null` if not using privacy.", "title": "v3_privkey", "_name_": "v3_privkey", "_required_": false}, "v3_authprotocol": {"default": null, "description": "SNMP v3 authentication protocol or `null` for no authentication.", "enum": [null, "MD5", "SHA", "128SHA224", "192SHA256", "256SHA384", "384SHA512"], "title": "v3_authprotocol", "_name_": "v3_authprotocol", "_required_": false}, "v3_privprotocol": {"default": null, "description": "SNMP v3 privacy protocol for encryption or `null` for no privacy.", "enum": [null, "DES", "3DESEDE", "AESCFB128", "AESCFB192", "AESCFB256", "AESBLUMENTHALCFB192", "AESBLUMENTHALCFB256"], "title": "v3_privprotocol", "_name_": "v3_privprotocol", "_required_": false}}, "required": ["type", "host", "port", "v3"], "title": "SNMPTrapServiceModel", "type": "object", "_attrs_order_": ["type", "host", "port", "v3", "community", "v3_username", "v3_authkey", "v3_privkey", "v3_authprotocol", "v3_privprotocol"]}, {"additionalProperties": false, "properties": {"type": {"const": "Telegram", "description": "Alert service type identifier for Telegram.", "enum": ["Telegram"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "bot_token REDACTED, "minLength": 1, "title": "bot_token REDACTED, "type": "string", "_name_": "bot_token REDACTED, "_required_": true}, "chat_ids": {"description": "List of Telegram chat IDs to send alerts to (minimum 1 required).", "items": [{"type": "integer"}], "minItems": 1, "title": "chat_ids", "type": "array", "_name_": "chat_ids", "_required_": true}}, "required": ["type", "bot_token REDACTED, "chat_ids"], "title": "TelegramServiceModel", "type": "object", "_attrs_order_": ["type", "bot_token REDACTED, "chat_ids"]}, {"additionalProperties": false, "properties": {"type": {"const": "VictorOps", "description": "Alert service type identifier for VictorOps (now Splunk On-Call).", "enum": ["VictorOps"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "api_key REDACTED, "minLength": 1, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "routing_key": {"description": "VictorOps routing key to determine alert destination and escalation policy.", "minLength": 1, "title": "routing_key", "type": "string", "_name_": "routing_key", "_required_": true}}, "required": ["type", "api_key REDACTED, "routing_key"], "title": "VictorOpsServiceModel", "type": "object", "_attrs_order_": ["type", "api_key REDACTED, "routing_key"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "level": {"description": "Minimum alert severity level that triggers notifications through this service.", "enum": ["INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"], "title": "level", "type": "string", "_name_": "level", "_required_": true}, "enabled": {"default": true, "description": "Whether the alert service is active and will send notifications.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the alert service.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "type__title": {"description": "Human-readable title for the alert service type.", "title": "type__title", "type": "string", "_name_": "type__title", "_required_": true}}, "required": ["name", "attributes", "level", "id", "type__title"], "title": "result", "type": "object", "description": "The updated alert service configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "attributes", "level", "enabled", "id", "type__title"]}]}, "api_key REDACTED, "cli_description": "Creates API Key", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["API_KEY REDACTED, "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "title": "username", "_name_": "username", "_required_": true}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "default": null, "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}}, "required": ["name", "username"], "title": "api_key REDACTED, "type": "object", "description": "API key configuration data for the new key.", "_name_": "api_key REDACTED, "_required_": true, "_attrs_order_": ["name", "username", "expires_at"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": true}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": true}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": true}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "default": null, "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": true}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": true}, "key": {"description": "The actual API key value (only returned on creation).", "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "local", "revoked", "revoked_reason", "key"], "title": "result", "type": "object", "description": "The created API key with the actual key value.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason", "key"]}]}, "api_key REDACTED, "cli_description": "Delete API Key `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["API_KEY REDACTED, "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "ID of the API key to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the API key is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "api_key REDACTED, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["API_KEY REDACTED, "API_KEY REDACTED, "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": true}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": true}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": true}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "default": null, "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": true}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": true}}, "required": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "local", "revoked", "revoked_reason"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason"]}]}, "api_key REDACTED, "cli_description": "Get the existing API keys for the currently-authenticated user ", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["API_KEY REDACTED, "API_KEY REDACTED, "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of API keys owned by the current authenticated user.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": true}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": true}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": true}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "default": null, "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": true}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": true}}, "required": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "local", "revoked", "revoked_reason"], "title": "ApiKeyEntry", "type": "object", "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "api_key REDACTED, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["API_KEY REDACTED, "API_KEY REDACTED, "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": false}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": false}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": false}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": false}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": false}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": false}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": false}}, "title": "ApiKeyQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": false}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": false}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": false}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": false}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": false}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": false}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": false}}, "title": "ApiKeyQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "api_key REDACTED, "cli_description": "Update API Key `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["API_KEY REDACTED, "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "ID of the API key to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "reset": {"description": "Whether to regenerate a new API key value for this entry.", "title": "reset", "type": "boolean", "_name_": "reset", "_required_": false}}, "title": "api_key REDACTED, "type": "object", "description": "Updated API key configuration data.", "_name_": "api_key REDACTED, "_required_": true, "_attrs_order_": ["name", "expires_at", "reset"]}], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": true}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": true}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": true}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "default": null, "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": true}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": true}, "key": {"description": "The actual API key value (only returned on creation).", "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "local", "revoked", "revoked_reason", "key"], "title": "ApiKeyEntryWithKey", "type": "object", "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason", "key"]}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the API key.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with the API key or `null` for system keys.", "title": "username", "_name_": "username", "_required_": true}, "user_identifier": {"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "User ID (numeric) or SID (string) that owns this API key.", "title": "user_identifier", "_name_": "user_identifier", "_required_": true}, "keyhash": {"description": "Hashed representation of the API key (masked for security).", "title": "keyhash", "type": "string", "_name_": "keyhash", "_required_": true}, "created_at": {"description": "Timestamp when the API key was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "expires_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "default": null, "description": "Expiration timestamp for the API key or `null` for no expiration.", "title": "expires_at", "_name_": "expires_at", "_required_": false}, "local": {"description": "Whether this API key is for local system use only.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "revoked": {"description": "Whether the API key has been revoked and is no longer valid.", "title": "revoked", "type": "boolean", "_name_": "revoked", "_required_": true}, "revoked_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason for API key revocation or `null` if not revoked.", "title": "revoked_reason", "_name_": "revoked_reason", "_required_": true}}, "required": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "local", "revoked", "revoked_reason"], "title": "ApiKeyEntry", "type": "object", "_attrs_order_": ["id", "name", "username", "user_identifier", "keyhash", "created_at", "expires_at", "local", "revoked", "revoked_reason"]}], "description": "The updated API key (includes key value if reset was performed).", "title": "result", "_name_": "result", "_required_": true}]}, "app.available": {"description": "Retrieve all available applications from all configured catalogs.", "cli_description": "Retrieve all available applications from all configured catalogs", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": false}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": false}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": false}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": false}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": false}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": false}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": false}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": false}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": false}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": false}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": false}, "maintainers": {"description": "List of app maintainers.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the app maintainer.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "email": {"description": "Email address of the app maintainer.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Website URL of the app maintainer or `null`.", "title": "url", "_name_": "url", "_required_": true}}, "required": ["name", "email", "url"], "title": "Maintainer", "type": "object", "_attrs_order_": ["name", "email", "url"]}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": false}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": false}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": false}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": false}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL of the app icon.", "title": "icon_url", "_name_": "icon_url", "_required_": false}, "catalog": {"description": "Name of the catalog this application comes from.", "minLength": 1, "title": "catalog", "type": "string", "_name_": "catalog", "_required_": false}, "installed": {"description": "Whether this application is currently installed on the system.", "title": "installed", "type": "boolean", "_name_": "installed", "_required_": false}, "train": {"description": "The catalog train this application version belongs to.", "examples": ["stable", "enterprise"], "minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": false}, "popularity_rank": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Popularity ranking of this application. Lower numbers indicate higher popularity. `null` if not ranked.", "title": "popularity_rank", "_name_": "popularity_rank", "_required_": false}}, "title": "AppAvailableItemQueryResultItem", "type": "object", "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url", "catalog", "installed", "train", "popularity_rank"]}], "type": "array"}, {"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": false}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": false}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": false}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": false}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": false}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": false}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": false}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": false}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": false}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": false}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": false}, "maintainers": {"description": "List of app maintainers.", "items": [{}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": false}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": false}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": false}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": false}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL of the app icon.", "title": "icon_url", "_name_": "icon_url", "_required_": false}, "catalog": {"description": "Name of the catalog this application comes from.", "minLength": 1, "title": "catalog", "type": "string", "_name_": "catalog", "_required_": false}, "installed": {"description": "Whether this application is currently installed on the system.", "title": "installed", "type": "boolean", "_name_": "installed", "_required_": false}, "train": {"description": "The catalog train this application version belongs to.", "examples": ["stable", "enterprise"], "minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": false}, "popularity_rank": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Popularity ranking of this application. Lower numbers indicate higher popularity. `null` if not ranked.", "title": "popularity_rank", "_name_": "popularity_rank", "_required_": false}}, "title": "AppAvailableItemQueryResultItem", "type": "object", "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url", "catalog", "installed", "train", "popularity_rank"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "app.available_space": {"description": "Returns space available in bytes in the configured apps pool which apps can consume", "cli_description": "Returns space available in bytes in the configured apps pool which apps can consume", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Available disk space in bytes for application storage.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "app.categories": {"description": "Retrieve list of valid categories which have associated applications.", "cli_description": "Retrieve list of valid categories which have associated applications", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available application category names.", "items": [{"minLength": 1, "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "app.certificate_choices": {"description": "Returns certificates which can be used by applications.", "cli_description": "Returns certificates which can be used by applications", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available certificates that can be used by applications.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the certificate.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Display name of the certificate.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "name"], "title": "AppCertificate", "type": "object", "_attrs_order_": ["id", "name"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "app.config": {"description": "Retrieve user specified configuration of `app_name`.", "cli_description": "Retrieve user specified configuration of `app_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the application to retrieve configuration for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"description": "The current configuration object for the application.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "app.container_console_choices": {"description": "Returns container console choices for `app_name`.", "cli_description": "Returns container console choices for `app_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the application to get console choices for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "minLength": 1, "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "minLength": 1, "title": "image", "type": "string", "_name_": "image", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["id", "service_name", "image", "state"], "title": "ContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "state"]}, "description": "Object containing container choices available for console access.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "app.container_ids": {"description": "Returns container IDs for `app_name`.", "cli_description": "Returns container IDs for `app_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the application to get container IDs for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"alive_only": {"default": true, "description": "Whether to return only running/active containers (`true`) or include all containers (`false`).", "title": "alive_only", "type": "boolean", "_name_": "alive_only", "_required_": false}}, "title": "options", "type": "object", "default": {"alive_only": true}, "description": "Options for filtering the returned container list.", "_name_": "options", "_required_": false, "_attrs_order_": ["alive_only"]}], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "minLength": 1, "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "minLength": 1, "title": "image", "type": "string", "_name_": "image", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["id", "service_name", "image", "state"], "title": "ContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "state"]}, "description": "Object containing container ID to details mappings.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "app.convert_to_custom": {"description": "Convert `app_name` to a custom app.", "cli_description": "Convert `app_name` to a custom app", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the catalog application to convert to a custom application.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "description": "The application entry after conversion to a custom application.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.create": {"description": "Create an app with `app_name` using `catalog_app` with `train` and `version`.\n\nTODO: Add support for advanced mode which will enable users to use their own compose files", "cli_description": "Create an app with `app_name` using `catalog_app` with `train` and `version`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"custom_app": {"default": false, "description": "Whether to create a custom application (`true`) or install from catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": false}, "values": {"description": "Configuration values for the application installation.", "title": "values", "type": "object", "_name_": "values", "_required_": false}, "custom_compose_config": {"description": "Docker Compose configuration as a structured object for custom applications.", "title": "custom_compose_config", "type": "object", "_name_": "custom_compose_config", "_required_": false}, "custom_compose_config_string": {"default": "", "description": "Docker Compose configuration as a YAML string for custom applications.", "title": "custom_compose_config_string", "type": "string", "_name_": "custom_compose_config_string", "_required_": false}, "catalog_app": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of the catalog application to install. Required when `custom_app` is `false`.", "title": "catalog_app", "_name_": "catalog_app", "_required_": false}, "app_name": {"description": "Application name must have the following:\n\n* Lowercase alphanumeric characters can be specified.\n* Name must start with an alphabetic character and can end with alphanumeric character.\n* Hyphen '-' is allowed but not as the first or last character.", "examples": ["abc123", "abc", "abcd-1232"], "maxLength": 40, "minLength": 1, "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$", "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, "train": {"default": "stable", "description": "The catalog train to install from.", "examples": ["stable", "enterprise"], "minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": false}, "version": {"default": "latest", "description": "The version of the application to install.", "examples": ["latest", "1.2.3"], "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": false}}, "required": ["app_name"], "title": "app_create", "type": "object", "description": "AppCreateArgs parameters.", "_name_": "app_create", "_required_": true, "_attrs_order_": ["custom_app", "values", "custom_compose_config", "custom_compose_config_string", "catalog_app", "app_name", "train", "version"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "description": "The newly created application entry with all configuration details.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.delete": {"description": "Delete `app_name` app.\n\n`force_remove_ix_volumes` should be set when the ix-volumes were created by the system for apps which were\nmigrated from k8s to docker and the user wants to remove them. This is to prevent accidental deletion of\nthe original ix-volumes which were created in dragonfish and before for kubernetes based apps. When this\nis set, it will result in the deletion of ix-volumes from both docker based apps and k8s based apps and should\nbe carefully set.\n\n`force_remove_custom_app` should be set when the app being deleted is a custom app and the user wants to\nforcefully remove the app. A use-case for this attribute is that user had an invalid yaml in his custom\napp and there are no actual docker resources (network/containers/volumes) in place for the custom app, then\ndocker compose down will fail as the yaml itself is invalid. In this case this flag can be set to proceed\nwith the deletion of the custom app. However if this app had any docker resources in place, then this flag\nwill have no effect.", "cli_description": "Delete `app_name` app", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to delete.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"remove_images": {"default": true, "description": "Whether to remove Docker images associated with the application.", "title": "remove_images", "type": "boolean", "_name_": "remove_images", "_required_": false}, "remove_ix_volumes": {"default": false, "description": "Whether to remove TrueNAS-managed storage volumes.", "title": "remove_ix_volumes", "type": "boolean", "_name_": "remove_ix_volumes", "_required_": false}, "force_remove_ix_volumes": {"default": false, "description": "Force removal of TrueNAS-managed volumes even if they contain data.", "title": "force_remove_ix_volumes", "type": "boolean", "_name_": "force_remove_ix_volumes", "_required_": false}, "force_remove_custom_app": {"default": false, "description": "Force removal of custom applications that might have important data or configurations.", "title": "force_remove_custom_app", "type": "boolean", "_name_": "force_remove_custom_app", "_required_": false}}, "title": "options", "type": "object", "default": {"remove_images": true, "remove_ix_volumes": false, "force_remove_ix_volumes": false, "force_remove_custom_app": false}, "description": "Options controlling what gets removed along with the application.", "_name_": "options", "_required_": false, "_attrs_order_": ["remove_images", "remove_ix_volumes", "force_remove_ix_volumes", "force_remove_custom_app"]}], "returns": [{"const": true, "description": "Returns `true` when the application is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "app.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.gpu_choices": {"description": "Returns GPU choices which can be used by applications.", "cli_description": "Returns GPU choices which can be used by applications", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"vendor": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "GPU vendor name. `null` if not detected.", "examples": ["NVIDIA", "AMD", "Intel"], "title": "vendor", "_name_": "vendor", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the GPU device. `null` if not available.", "title": "description", "_name_": "description", "_required_": true}, "error": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Error message if the GPU cannot be accessed or configured. `null` if no errors.", "title": "error", "_name_": "error", "_required_": true}, "vendor_specific_config": {"description": "Configuration options specific to the GPU vendor.", "title": "vendor_specific_config", "type": "object", "_name_": "vendor_specific_config", "_required_": true}, "gpu_details": {"description": "Detailed information about the GPU hardware and capabilities.", "title": "gpu_details", "type": "object", "_name_": "gpu_details", "_required_": true}, "pci_slot": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "PCI slot identifier where the GPU is installed. `null` if not available.", "title": "pci_slot", "_name_": "pci_slot", "_required_": true}}, "required": ["vendor", "description", "error", "vendor_specific_config", "gpu_details", "pci_slot"], "title": "GPU", "type": "object", "_attrs_order_": ["vendor", "description", "error", "vendor_specific_config", "gpu_details", "pci_slot"]}, "title": "result", "type": "object", "description": "Object mapping GPU identifiers to their detailed information.", "_name_": "result", "_required_": true}]}, "app.ip_choices": {"description": "Returns IP choices which can be used by applications.", "cli_description": "Returns IP choices which can be used by applications", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"minLength": 1, "type": "string"}, "description": "Object mapping IP addresses to their descriptive names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "app.latest": {"description": "Retrieve latest updated apps.", "cli_description": "Retrieve latest updated apps", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": false}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": false}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": false}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": false}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": false}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": false}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": false}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": false}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": false}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": false}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": false}, "maintainers": {"description": "List of app maintainers.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the app maintainer.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "email": {"description": "Email address of the app maintainer.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Website URL of the app maintainer or `null`.", "title": "url", "_name_": "url", "_required_": true}}, "required": ["name", "email", "url"], "title": "Maintainer", "type": "object", "_attrs_order_": ["name", "email", "url"]}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": false}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": false}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": false}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": false}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL of the app icon.", "title": "icon_url", "_name_": "icon_url", "_required_": false}, "catalog": {"description": "Name of the catalog this application comes from.", "minLength": 1, "title": "catalog", "type": "string", "_name_": "catalog", "_required_": false}, "installed": {"description": "Whether this application is currently installed on the system.", "title": "installed", "type": "boolean", "_name_": "installed", "_required_": false}, "train": {"description": "The catalog train this application version belongs to.", "examples": ["stable", "enterprise"], "minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": false}, "popularity_rank": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Popularity ranking of this application. Lower numbers indicate higher popularity. `null` if not ranked.", "title": "popularity_rank", "_name_": "popularity_rank", "_required_": false}}, "title": "AppLatestItemQueryResultItem", "type": "object", "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url", "catalog", "installed", "train", "popularity_rank"]}], "type": "array"}, {"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": false}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": false}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": false}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": false}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": false}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": false}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": false}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": false}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": false}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": false}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": false}, "maintainers": {"description": "List of app maintainers.", "items": [{}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": false}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": false}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": false}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": false}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL of the app icon.", "title": "icon_url", "_name_": "icon_url", "_required_": false}, "catalog": {"description": "Name of the catalog this application comes from.", "minLength": 1, "title": "catalog", "type": "string", "_name_": "catalog", "_required_": false}, "installed": {"description": "Whether this application is currently installed on the system.", "title": "installed", "type": "boolean", "_name_": "installed", "_required_": false}, "train": {"description": "The catalog train this application version belongs to.", "examples": ["stable", "enterprise"], "minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": false}, "popularity_rank": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Popularity ranking of this application. Lower numbers indicate higher popularity. `null` if not ranked.", "title": "popularity_rank", "_name_": "popularity_rank", "_required_": false}}, "title": "AppLatestItemQueryResultItem", "type": "object", "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url", "catalog", "installed", "train", "popularity_rank"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "app.outdated_docker_images": {"description": "Returns a list of outdated docker images for the specified app `name`.", "cli_description": "Returns a list of outdated docker images for the specified app `name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the application to check for outdated Docker images.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"description": "Array of Docker image names that have updates available.", "items": [{"minLength": 1, "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "app.pull_images": {"description": "Pulls docker images for the specified app `name`.", "cli_description": "Pulls docker images for the specified app `name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to pull images for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"redeploy": {"default": true, "description": "Whether to redeploy the application after pulling new images.", "title": "redeploy", "type": "boolean", "_name_": "redeploy", "_required_": false}}, "title": "options", "type": "object", "default": {"redeploy": true}, "description": "Options for pulling images including whether to redeploy.", "_name_": "options", "_required_": false, "_attrs_order_": ["redeploy"]}], "returns": [{"description": "Returns `null` when the application images are successfully pulled.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "app.query": {"description": "Query all apps with `query-filters` and `query-options`.\n\n`query-options.extra.host_ip` is a string which can be provided to override portal IP address\nif it is a wildcard.\n\n`query-options.extra.include_app_schema` is a boolean which can be set to include app schema in the response.\n\n`query-options.extra.retrieve_config` is a boolean which can be set to retrieve app configuration\nused to install/manage app.", "cli_description": "Query all apps with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": false}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": false}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": false}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": false}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": false}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": false}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": false}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": false}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": false}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": false, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": false}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": false}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "title": "AppQueryResultItem", "type": "object", "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}], "type": "array"}, {"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": false}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": false}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": false}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": false}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": false}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": false}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": false}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": false}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": false}, "active_workloads": {"description": "Information about the running containers, ports, and resources used by this application.", "title": "active_workloads", "_name_": "active_workloads", "_required_": false}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": false}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": false}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "title": "AppQueryResultItem", "type": "object", "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "app.redeploy": {"description": "Redeploy `app_name` app.", "cli_description": "Redeploy `app_name` app", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to redeploy (stop, pull latest images, and restart).", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "description": "The application entry after successful redeployment.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.rollback": {"description": "Rollback `app_name` app to previous version.", "cli_description": "Rollback `app_name` app to previous version", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to rollback.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"app_version": {"description": "Target version to rollback to.", "minLength": 1, "title": "app_version", "type": "string", "_name_": "app_version", "_required_": true}, "rollback_snapshot": {"default": true, "description": "Whether to create a snapshot before performing the rollback.", "title": "rollback_snapshot", "type": "boolean", "_name_": "rollback_snapshot", "_required_": false}}, "required": ["app_version"], "title": "options", "type": "object", "description": "Rollback options.", "_name_": "options", "_required_": true, "_attrs_order_": ["app_version", "rollback_snapshot"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "description": "The application entry after successful rollback.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.rollback_versions": {"description": "Retrieve versions available for rollback for `app_name` app.", "cli_description": "Retrieve versions available for rollback for `app_name` app", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the application to get rollback versions for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"description": "Array of version strings available for rollback.", "items": [{"minLength": 1, "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "app.similar": {"description": "Retrieve applications which are similar to `app_name`.", "cli_description": "Retrieve applications which are similar to `app_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": true}], "returns": [{"items": [{"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": true}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": true}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": true}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": true}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": true}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": true}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": true}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": true}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "maintainers": {"description": "List of app maintainers.", "items": [{"additionalProperties": false, "properties": {"name": {"title": "name", "type": "string", "_name_": "name", "_required_": true}, "email": {"title": "email", "type": "string", "_name_": "email", "_required_": true}, "url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "url", "_name_": "url", "_required_": true}}, "required": ["name", "email", "url"], "title": "Maintainer", "type": "object", "_attrs_order_": ["name", "email", "url"]}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": true}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": true}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": true}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": true}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "URL of the app icon", "title": "icon_url", "_name_": "icon_url", "_required_": false}, "catalog": {"minLength": 1, "title": "catalog", "type": "string", "_name_": "catalog", "_required_": true}, "installed": {"title": "installed", "type": "boolean", "_name_": "installed", "_required_": true}, "train": {"minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": true}}, "required": ["app_readme", "categories", "description", "healthy", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "catalog", "installed", "train"], "title": "AppAvailableItem", "type": "object", "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url", "catalog", "installed", "train"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "app.start": {"description": "Start `app_name` app.", "cli_description": "Start `app_name` app", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to start.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"description": "Returns `null` when the application is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "app.stop": {"description": "Stop `app_name` app.", "cli_description": "Stop `app_name` app", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to stop.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}], "returns": [{"description": "Returns `null` when the application is successfully stopped.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "app.update": {"description": "Update `app_name` app with new configuration.", "cli_description": "Update `app_name` app with new configuration", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to update.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"values": {"description": "Updated configuration values for the application.", "title": "values", "type": "object", "_name_": "values", "_required_": false}, "custom_compose_config": {"description": "Updated Docker Compose configuration as a structured object.", "title": "custom_compose_config", "type": "object", "_name_": "custom_compose_config", "_required_": false}, "custom_compose_config_string": {"default": "", "description": "Updated Docker Compose configuration as a YAML string.", "title": "custom_compose_config_string", "type": "string", "_name_": "custom_compose_config_string", "_required_": false}}, "title": "update", "type": "object", "default": {"values": "{}", "custom_compose_config": "{}", "custom_compose_config_string": ""}, "description": "Updated configuration and settings for the application.", "_name_": "update", "_required_": false, "_attrs_order_": ["values", "custom_compose_config", "custom_compose_config_string"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "description": "The updated application entry with new configuration details.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.upgrade": {"description": "Upgrade `app_name` app to `app_version`.", "cli_description": "Upgrade `app_name` app to `app_version`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"description": "Name of the application to upgrade.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"app_version": {"default": "latest", "description": "Target version to upgrade to. Use 'latest' for the newest available version.", "minLength": 1, "title": "app_version", "type": "string", "_name_": "app_version", "_required_": false}, "values": {"description": "Configuration values to apply during the upgrade.", "title": "values", "type": "object", "_name_": "values", "_required_": false}, "snapshot_hostpaths": {"default": false, "description": "Whether to create snapshots of host path volumes before upgrade.", "title": "snapshot_hostpaths", "type": "boolean", "_name_": "snapshot_hostpaths", "_required_": false}}, "title": "options", "type": "object", "default": {"app_version": "latest", "values": "{}", "snapshot_hostpaths": false}, "description": "Options controlling the upgrade process including target version and snapshot behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["app_version", "values", "snapshot_hostpaths"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "The display name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "id": {"description": "Unique identifier for the application instance.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "state": {"description": "Current operational state of the application.", "enum": ["CRASHED", "DEPLOYING", "RUNNING", "STOPPED", "STOPPING"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "upgrade_available": {"description": "Whether a newer version of the application is available for upgrade.", "title": "upgrade_available", "type": "boolean", "_name_": "upgrade_available", "_required_": true}, "latest_version": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The latest available version string, or `null` if no updates are available.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "image_updates_available": {"description": "Whether newer Docker images are available for the containers in this application.", "title": "image_updates_available", "type": "boolean", "_name_": "image_updates_available", "_required_": true}, "custom_app": {"description": "Whether this is a custom application (`true`) or from a catalog (`false`).", "title": "custom_app", "type": "boolean", "_name_": "custom_app", "_required_": true}, "migrated": {"description": "Whether this application has been migrated from kubernetes.", "title": "migrated", "type": "boolean", "_name_": "migrated", "_required_": true}, "human_version": {"description": "Human-readable version string for display purposes.", "minLength": 1, "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}, "version": {"description": "Technical version identifier of the currently installed application.", "minLength": 1, "title": "version", "type": "string", "_name_": "version", "_required_": true}, "metadata": {"description": "Application metadata including description, category, and other catalog information.", "title": "metadata", "type": "object", "_name_": "metadata", "_required_": true}, "active_workloads": {"additionalProperties": false, "properties": {"containers": {"description": "Total number of containers currently running for this application.", "title": "containers", "type": "integer", "_name_": "containers", "_required_": true}, "used_ports": {"description": "Array of all port mappings used by the application.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{"additionalProperties": false, "properties": {"host_port": {"description": "The port number on the host system.", "title": "host_port", "type": "integer", "_name_": "host_port", "_required_": true}, "host_ip": {"description": "The IP address on the host system that the port is bound to.", "title": "host_ip", "type": "string", "_name_": "host_ip", "_required_": true}}, "required": ["host_port", "host_ip"], "title": "HostPorts", "type": "object", "_attrs_order_": ["host_port", "host_ip"]}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "used_ports", "type": "array", "_name_": "used_ports", "_required_": true}, "used_host_ips": {"description": "Array of host IP addresses in use by the application.", "items": [{"type": "string"}], "title": "used_host_ips", "type": "array", "_name_": "used_host_ips", "_required_": true}, "container_details": {"description": "Detailed information about each container in the application.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "service_name": {"description": "Name of the service this container provides.", "title": "service_name", "type": "string", "_name_": "service_name", "_required_": true}, "image": {"description": "Docker image name and tag used by this container.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "port_config": {"description": "Array of port mappings for this container.", "items": [{"additionalProperties": false, "properties": {"container_port": {"description": "The port number inside the container.", "title": "container_port", "type": "integer", "_name_": "container_port", "_required_": true}, "protocol": {"description": "The network protocol used.", "examples": ["tcp", "udp"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": true}, "host_ports": {"description": "Array of host port mappings for this container port.", "items": [{}], "title": "host_ports", "type": "array", "_name_": "host_ports", "_required_": true}}, "required": ["container_port", "protocol", "host_ports"], "title": "UsedPorts", "type": "object", "_attrs_order_": ["container_port", "protocol", "host_ports"]}], "title": "port_config", "type": "array", "_name_": "port_config", "_required_": true}, "state": {"description": "Current state of the container.", "enum": ["crashed", "created", "exited", "running", "starting"], "title": "state", "type": "string", "_name_": "state", "_required_": true}, "volume_mounts": {"description": "Array of volume mounts configured for this container.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volume_mounts", "type": "array", "_name_": "volume_mounts", "_required_": true}}, "required": ["id", "service_name", "image", "port_config", "state", "volume_mounts"], "title": "AppContainerDetails", "type": "object", "_attrs_order_": ["id", "service_name", "image", "port_config", "state", "volume_mounts"]}], "title": "container_details", "type": "array", "_name_": "container_details", "_required_": true}, "volumes": {"description": "Array of all volume mounts used by the application.", "items": [{"additionalProperties": false, "properties": {"source": {"description": "The source path or volume name on the host system.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "The mount path inside the container.", "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "mode": {"description": "The mount mode (e.g., 'rw' for read-write, 'ro' for read-only).", "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "type": {"description": "The volume type.", "examples": ["bind", "volume"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["source", "destination", "mode", "type"], "title": "AppVolumes", "type": "object", "_attrs_order_": ["source", "destination", "mode", "type"]}], "title": "volumes", "type": "array", "_name_": "volumes", "_required_": true}, "images": {"description": "Array of Docker image names used by the application.", "items": [{"minLength": 1, "type": "string"}], "title": "images", "type": "array", "_name_": "images", "_required_": true}, "networks": {"description": "Array of Docker networks associated with the application.", "items": [{"additionalProperties": true, "properties": {"Name": {"description": "The name of the Docker network.", "title": "Name", "type": "string", "_name_": "Name", "_required_": true}, "Id": {"description": "Unique identifier for the Docker network.", "title": "Id", "type": "string", "_name_": "Id", "_required_": true}, "Labels": {"description": "Key-value pairs of labels associated with the network.", "title": "Labels", "type": "object", "_name_": "Labels", "_required_": true}}, "required": ["Name", "Id", "Labels"], "title": "AppNetworks", "type": "object", "_attrs_order_": ["Name", "Id", "Labels"]}], "title": "networks", "type": "array", "_name_": "networks", "_required_": true}}, "required": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"], "title": "active_workloads", "type": "object", "description": "Information about the running containers, ports, and resources used by this application.", "_name_": "active_workloads", "_required_": true, "_attrs_order_": ["containers", "used_ports", "used_host_ips", "container_details", "volumes", "images", "networks"]}, "notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "User-provided notes or comments about this application instance.", "title": "notes", "_name_": "notes", "_required_": true}, "portals": {"description": "Web portals and access points provided by the application (URLs, ports, etc.).", "title": "portals", "type": "object", "_name_": "portals", "_required_": true}, "version_details": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Detailed version information including changelog and upgrade notes. `null` if not available.", "title": "version_details", "_name_": "version_details", "_required_": false}, "config": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Current configuration values for the application. `null` if configuration is not requested.", "title": "config", "_name_": "config", "_required_": false}}, "required": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals"], "title": "result", "type": "object", "description": "The application entry after successful upgrade.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "id", "state", "upgrade_available", "latest_version", "image_updates_available", "custom_app", "migrated", "human_version", "version", "metadata", "active_workloads", "notes", "portals", "version_details", "config"]}]}, "app.upgrade_summary": {"description": "Retrieve upgrade summary for `app_name`.", "cli_description": "Retrieve upgrade summary for `app_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the application to get upgrade summary for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"app_version": {"default": "latest", "description": "Target version to generate upgrade summary for. Use 'latest' for the newest available version.", "minLength": 1, "title": "app_version", "type": "string", "_name_": "app_version", "_required_": false}}, "title": "options", "type": "object", "default": {"app_version": "latest"}, "description": "Options specifying the target version for the summary.", "_name_": "options", "_required_": false, "_attrs_order_": ["app_version"]}], "returns": [{"additionalProperties": false, "properties": {"latest_version": {"description": "Latest version available for the app.", "title": "latest_version", "type": "string", "_name_": "latest_version", "_required_": true}, "latest_human_version": {"description": "Latest human readable version available for the app.", "title": "latest_human_version", "type": "string", "_name_": "latest_human_version", "_required_": true}, "upgrade_version": {"description": "Version user has requested to be upgraded at.", "title": "upgrade_version", "type": "string", "_name_": "upgrade_version", "_required_": true}, "upgrade_human_version": {"description": "Human-readable version user has requested to be upgraded at.", "title": "upgrade_human_version", "type": "string", "_name_": "upgrade_human_version", "_required_": true}, "available_versions_for_upgrade": {"description": "List of available versions for upgrade.", "items": [{"additionalProperties": false, "properties": {"version": {"description": "Version of the app.", "title": "version", "type": "string", "_name_": "version", "_required_": true}, "human_version": {"description": "Human-readable version of the app.", "title": "human_version", "type": "string", "_name_": "human_version", "_required_": true}}, "required": ["version", "human_version"], "title": "AppVersionInfo", "type": "object", "_attrs_order_": ["version", "human_version"]}], "title": "available_versions_for_upgrade", "type": "array", "_name_": "available_versions_for_upgrade", "_required_": true}, "changelog": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Changelog or release notes for the upgrade version. `null` if not available.", "title": "changelog", "_name_": "changelog", "_required_": true}}, "required": ["latest_version", "latest_human_version", "upgrade_version", "upgrade_human_version", "available_versions_for_upgrade", "changelog"], "title": "result", "type": "object", "description": "AppUpgradeSummaryResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["latest_version", "latest_human_version", "upgrade_version", "upgrade_human_version", "available_versions_for_upgrade", "changelog"]}]}, "app.used_host_ips": {"description": "Returns host IPs in use by applications.", "cli_description": "Returns host IPs in use by applications", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"items": [{"type": "string"}], "type": "array"}, "description": "Object mapping application names to arrays of host IP addresses they use.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "app.used_ports": {"description": "Returns ports in use by applications.", "cli_description": "Returns ports in use by applications", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of port numbers currently in use by any application.", "items": [{"type": "integer"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "app.image.delete": {"description": "Delete docker image `image_id`.\n\n`options.force` when set will force delete the image regardless of the state of containers and should\nbe used cautiously.", "cli_description": "Delete docker image `image_id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_WRITE"], "accepts": [{"description": "Container image ID or reference to delete.", "title": "image_id", "type": "string", "_name_": "image_id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "Whether to force deletion even if the image is in use by containers.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "options", "type": "object", "default": {"force": false}, "description": "Deletion options controlling force removal behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["force"]}], "returns": [{"const": true, "description": "Returns `true` when the container image is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "app.image.dockerhub_rate_limit": {"description": "Returns the current rate limit information for Docker Hub registry.\n\nPlease refer to https://docs.docker.com/docker-hub/download-rate-limit/ for more information.", "cli_description": "Returns the current rate limit information for Docker Hub registry", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"total_pull_limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Total pull limit for Docker Hub registry.", "title": "total_pull_limit", "_name_": "total_pull_limit", "_required_": false}, "total_time_limit_in_secs": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Total time limit in seconds for Docker Hub registry before the limit renews.", "title": "total_time_limit_in_secs", "_name_": "total_time_limit_in_secs", "_required_": false}, "remaining_pull_limit": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Remaining pull limit for Docker Hub registry.", "title": "remaining_pull_limit", "_name_": "remaining_pull_limit", "_required_": false}, "remaining_time_limit_in_secs": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Remaining time limit in seconds for Docker Hub registry for the current pull limit to be renewed.", "title": "remaining_time_limit_in_secs", "_name_": "remaining_time_limit_in_secs", "_required_": false}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Error message if rate limit information could not be retrieved or `null` on success.", "title": "error", "_name_": "error", "_required_": false}}, "title": "result", "type": "object", "description": "ContainerImagesDockerhubRateLimitResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["total_pull_limit", "total_time_limit_in_secs", "remaining_pull_limit", "remaining_time_limit_in_secs", "error"]}]}, "app.image.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container image (usually SHA256 hash).", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "repo_tags": {"description": "Array of repository tags associated with this image.", "items": [{"type": "string"}], "title": "repo_tags", "type": "array", "_name_": "repo_tags", "_required_": true}, "repo_digests": {"description": "Array of repository digests (content-addressable identifiers) for this image.", "items": [{"type": "string"}], "title": "repo_digests", "type": "array", "_name_": "repo_digests", "_required_": true}, "size": {"description": "Size of the container image in bytes.", "title": "size", "type": "integer", "_name_": "size", "_required_": true}, "dangling": {"description": "Whether this is a dangling image (no tags or references).", "title": "dangling", "type": "boolean", "_name_": "dangling", "_required_": true}, "update_available": {"description": "Whether a newer version of this image is available for download.", "title": "update_available", "type": "boolean", "_name_": "update_available", "_required_": true}, "created": {"description": "Timestamp when the container image was created (ISO format).", "title": "created", "type": "string", "_name_": "created", "_required_": true}, "author": {"description": "Author or maintainer of the container image.", "title": "author", "type": "string", "_name_": "author", "_required_": true}, "comment": {"description": "Comment or description provided by the image author.", "title": "comment", "type": "string", "_name_": "comment", "_required_": true}, "parsed_repo_tags": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"reference": {"description": "Full reference to the container image (registry/repository:tag).", "title": "reference", "type": "string", "_name_": "reference", "_required_": true}, "image": {"description": "Container image name without registry or tag.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "tag": {"description": "Image tag (version) or digest identifier.", "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "registry": {"description": "Container registry hostname (e.g., docker.io, quay.io).", "title": "registry", "type": "string", "_name_": "registry", "_required_": true}, "complete_tag": {"description": "Complete image reference including registry, image name, and tag.", "title": "complete_tag", "type": "string", "_name_": "complete_tag", "_required_": true}, "reference_is_digest": {"description": "Whether the reference uses a digest hash instead of a tag name.", "title": "reference_is_digest", "type": "boolean", "_name_": "reference_is_digest", "_required_": true}}, "required": ["reference", "image", "tag", "registry", "complete_tag", "reference_is_digest"], "title": "AppImageParsedRepoTags", "type": "object", "_attrs_order_": ["reference", "image", "tag", "registry", "complete_tag", "reference_is_digest"]}], "type": "array"}, {"type": "null"}], "default": null, "description": "Parsed repository tag information or `null` if not available.", "title": "parsed_repo_tags", "_name_": "parsed_repo_tags", "_required_": false}}, "required": ["id", "repo_tags", "repo_digests", "size", "dangling", "update_available", "created", "author", "comment"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "repo_tags", "repo_digests", "size", "dangling", "update_available", "created", "author", "comment", "parsed_repo_tags"]}]}, "app.image.pull": {"description": "`image` is the name of the image to pull. Format for the name is \"registry/repo/image:v1.2.3\" where\nregistry may be omitted and it will default to docker registry in this case. It can or cannot contain\nthe tag - this will be passed as is to docker so this should be analogous to what `docker pull` expects.\n\n`auth_config` should be specified if image to be retrieved is under a private repository.", "cli_description": "`image` is the name of the image to pull", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"auth_config": {"anyOf": [{"additionalProperties": false, "properties": {"username": {"description": "Username for container registry authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "registry_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Container registry URI or `null` to use default registry.", "title": "registry_uri", "_name_": "registry_uri", "_required_": false}}, "required": ["username", "password REDACTED, "title": "AppImageAuthConfig", "type": "object", "_attrs_order_": ["username", "password REDACTED, "registry_uri"]}, {"type": "null"}], "default": null, "description": "Authentication configuration for private registries or `null` for public images.", "title": "auth_config", "_name_": "auth_config", "_required_": false}, "image": {"description": "Container image reference to pull (registry/repository:tag).", "minLength": 1, "title": "image", "type": "string", "_name_": "image", "_required_": true}}, "required": ["image"], "title": "image_pull", "type": "object", "description": "AppImagePullArgs parameters.", "_name_": "image_pull", "_required_": true, "_attrs_order_": ["auth_config", "image"]}], "returns": [{"description": "Returns `null` when the image is successfully pulled.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "app.image.query": {"description": "Query all docker images with `query-filters` and `query-options`.\n\n`query-options.extra.parse_tags` is a boolean which when set will have normalized tags to be retrieved.", "cli_description": "Query all docker images with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container image (usually SHA256 hash).", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "repo_tags": {"description": "Array of repository tags associated with this image.", "items": [{"type": "string"}], "title": "repo_tags", "type": "array", "_name_": "repo_tags", "_required_": false}, "repo_digests": {"description": "Array of repository digests (content-addressable identifiers) for this image.", "items": [{"type": "string"}], "title": "repo_digests", "type": "array", "_name_": "repo_digests", "_required_": false}, "size": {"description": "Size of the container image in bytes.", "title": "size", "type": "integer", "_name_": "size", "_required_": false}, "dangling": {"description": "Whether this is a dangling image (no tags or references).", "title": "dangling", "type": "boolean", "_name_": "dangling", "_required_": false}, "update_available": {"description": "Whether a newer version of this image is available for download.", "title": "update_available", "type": "boolean", "_name_": "update_available", "_required_": false}, "created": {"description": "Timestamp when the container image was created (ISO format).", "title": "created", "type": "string", "_name_": "created", "_required_": false}, "author": {"description": "Author or maintainer of the container image.", "title": "author", "type": "string", "_name_": "author", "_required_": false}, "comment": {"description": "Comment or description provided by the image author.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "parsed_repo_tags": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"reference": {"description": "Full reference to the container image (registry/repository:tag).", "title": "reference", "type": "string", "_name_": "reference", "_required_": true}, "image": {"description": "Container image name without registry or tag.", "title": "image", "type": "string", "_name_": "image", "_required_": true}, "tag": {"description": "Image tag (version) or digest identifier.", "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "registry": {"description": "Container registry hostname (e.g., docker.io, quay.io).", "title": "registry", "type": "string", "_name_": "registry", "_required_": true}, "complete_tag": {"description": "Complete image reference including registry, image name, and tag.", "title": "complete_tag", "type": "string", "_name_": "complete_tag", "_required_": true}, "reference_is_digest": {"description": "Whether the reference uses a digest hash instead of a tag name.", "title": "reference_is_digest", "type": "boolean", "_name_": "reference_is_digest", "_required_": true}}, "required": ["reference", "image", "tag", "registry", "complete_tag", "reference_is_digest"], "title": "AppImageParsedRepoTags", "type": "object", "_attrs_order_": ["reference", "image", "tag", "registry", "complete_tag", "reference_is_digest"]}], "type": "array"}, {"type": "null"}], "description": "Parsed repository tag information or `null` if not available.", "title": "parsed_repo_tags", "_name_": "parsed_repo_tags", "_required_": false}}, "title": "AppImageQueryResultItem", "type": "object", "_attrs_order_": ["id", "repo_tags", "repo_digests", "size", "dangling", "update_available", "created", "author", "comment", "parsed_repo_tags"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container image (usually SHA256 hash).", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "repo_tags": {"description": "Array of repository tags associated with this image.", "items": [{"type": "string"}], "title": "repo_tags", "type": "array", "_name_": "repo_tags", "_required_": false}, "repo_digests": {"description": "Array of repository digests (content-addressable identifiers) for this image.", "items": [{"type": "string"}], "title": "repo_digests", "type": "array", "_name_": "repo_digests", "_required_": false}, "size": {"description": "Size of the container image in bytes.", "title": "size", "type": "integer", "_name_": "size", "_required_": false}, "dangling": {"description": "Whether this is a dangling image (no tags or references).", "title": "dangling", "type": "boolean", "_name_": "dangling", "_required_": false}, "update_available": {"description": "Whether a newer version of this image is available for download.", "title": "update_available", "type": "boolean", "_name_": "update_available", "_required_": false}, "created": {"description": "Timestamp when the container image was created (ISO format).", "title": "created", "type": "string", "_name_": "created", "_required_": false}, "author": {"description": "Author or maintainer of the container image.", "title": "author", "type": "string", "_name_": "author", "_required_": false}, "comment": {"description": "Comment or description provided by the image author.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "parsed_repo_tags": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "Parsed repository tag information or `null` if not available.", "title": "parsed_repo_tags", "_name_": "parsed_repo_tags", "_required_": false}}, "title": "AppImageQueryResultItem", "type": "object", "_attrs_order_": ["id", "repo_tags", "repo_digests", "size", "dangling", "update_available", "created", "author", "comment", "parsed_repo_tags"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "app.ix_volume.exists": {"description": "Check if ix-volumes exist for `app_name`.", "cli_description": "Check if ix-volumes exist for `app_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the iX volume to check for existence.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}], "returns": [{"description": "Returns `true` if the iX volume exists, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "app.ix_volume.query": {"description": "Query ix-volumes with `filters` and `options`.", "cli_description": "Query ix-volumes with `filters` and `options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"app_name": {"description": "Name of the application that owns this iX volume.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": false}, "name": {"description": "Name of the iX volume used for persistent storage.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "AppsIxVolumeQueryResultItem", "type": "object", "_attrs_order_": ["app_name", "name"]}], "type": "array"}, {"additionalProperties": false, "properties": {"app_name": {"description": "Name of the application that owns this iX volume.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": false}, "name": {"description": "Name of the iX volume used for persistent storage.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "AppsIxVolumeQueryResultItem", "type": "object", "_attrs_order_": ["app_name", "name"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "app.registry.create": {"description": "Create an app registry entry.", "cli_description": "Create an app registry entry", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "uri": {"default": "https://index.docker.io/v1/", "description": "Container registry URI endpoint (defaults to Docker Hub).", "title": "uri", "type": "string", "_name_": "uri", "_required_": false}}, "required": ["name", "username", "password REDACTED, "title": "app_registry_create", "type": "object", "description": "Container registry configuration data for the new registry.", "_name_": "app_registry_create", "_required_": true, "_attrs_order_": ["name", "description", "username", "password REDACTED, "uri"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container registry configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "uri": {"description": "Container registry URI endpoint.", "title": "uri", "type": "string", "_name_": "uri", "_required_": true}}, "required": ["id", "name", "username", "password REDACTED, "uri"], "title": "result", "type": "object", "description": "The created container registry configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "description", "username", "password REDACTED, "uri"]}]}, "app.registry.delete": {"description": "Delete an app registry entry.", "cli_description": "Delete an app registry entry", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_WRITE"], "accepts": [{"description": "ID of the container registry to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` when the container registry is successfully deleted.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "app.registry.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container registry configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "uri": {"description": "Container registry URI endpoint.", "title": "uri", "type": "string", "_name_": "uri", "_required_": true}}, "required": ["id", "name", "username", "password REDACTED, "uri"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "description", "username", "password REDACTED, "uri"]}]}, "app.registry.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container registry configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "uri": {"description": "Container registry URI endpoint.", "title": "uri", "type": "string", "_name_": "uri", "_required_": false}}, "title": "AppRegistryQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "description", "username", "password REDACTED, "uri"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container registry configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "uri": {"description": "Container registry URI endpoint.", "title": "uri", "type": "string", "_name_": "uri", "_required_": false}}, "title": "AppRegistryQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "description", "username", "password REDACTED, "uri"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "app.registry.update": {"description": "Update an app registry entry.", "cli_description": "Update an app registry entry", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_WRITE"], "accepts": [{"description": "ID of the container registry to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "uri": {"description": "Container registry URI endpoint (defaults to Docker Hub).", "title": "uri", "type": "string", "_name_": "uri", "_required_": false}}, "title": "data", "type": "object", "description": "Updated container registry configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["name", "description", "username", "password REDACTED, "uri"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the container registry configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the container registry.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional description of the container registry or `null`.", "title": "description", "_name_": "description", "_required_": false}, "username": {"description": "Username for registry authentication (masked for security).", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "uri": {"description": "Container registry URI endpoint.", "title": "uri", "type": "string", "_name_": "uri", "_required_": true}}, "required": ["id", "name", "username", "password REDACTED, "uri"], "title": "result", "type": "object", "description": "The updated container registry configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "description", "username", "password REDACTED, "uri"]}]}, "audit.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_AUDIT_READ"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the audit configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "retention": {"description": "Number of days to retain local audit messages.", "maximum": 30, "minimum": 1, "title": "retention", "type": "integer", "_name_": "retention", "_required_": true}, "reservation": {"description": "Size in GiB of refreservation to set on ZFS dataset where the audit databases are stored. The refreservation specifies the minimum amount of space guaranteed to the dataset, and counts against the space available for other datasets in the zpool where the audit dataset is located.", "maximum": 100, "minimum": 0, "title": "reservation", "type": "integer", "_name_": "reservation", "_required_": true}, "quota": {"description": "Size in GiB of the maximum amount of space that may be consumed by the dataset where the audit dabases are stored.", "maximum": 100, "minimum": 0, "title": "quota", "type": "integer", "_name_": "quota", "_required_": true}, "quota_fill_warning": {"description": "Percentage used of dataset quota at which to generate a warning alert.", "maximum": 80, "minimum": 5, "title": "quota_fill_warning", "type": "integer", "_name_": "quota_fill_warning", "_required_": true}, "quota_fill_critical": {"description": "Percentage used of dataset quota at which to generate a critical alert.", "maximum": 95, "minimum": 50, "title": "quota_fill_critical", "type": "integer", "_name_": "quota_fill_critical", "_required_": true}, "remote_logging_enabled": {"description": "Logging to a remote syslog server is enabled on TrueNAS, and audit logs are included in what is sent remotely.", "title": "remote_logging_enabled", "type": "boolean", "_name_": "remote_logging_enabled", "_required_": true}, "space": {"additionalProperties": false, "properties": {"used": {"description": "Total space used by the audit dataset in bytes.", "title": "used", "type": "integer", "_name_": "used", "_required_": true}, "used_by_dataset": {"description": "Space used by the dataset itself (not including snapshots or reservations) in bytes.", "title": "used_by_dataset", "type": "integer", "_name_": "used_by_dataset", "_required_": true}, "used_by_reservation": {"description": "Space reserved for the dataset in bytes.", "title": "used_by_reservation", "type": "integer", "_name_": "used_by_reservation", "_required_": true}, "used_by_snapshots": {"description": "Space used by snapshots of the audit dataset in bytes.", "title": "used_by_snapshots", "type": "integer", "_name_": "used_by_snapshots", "_required_": true}, "available": {"description": "Available space remaining for the audit dataset in bytes.", "title": "available", "type": "integer", "_name_": "available", "_required_": true}}, "required": ["used", "used_by_dataset", "used_by_reservation", "used_by_snapshots", "available"], "title": "space", "type": "object", "description": "ZFS dataset properties relating space used and available for the dataset where the audit databases are written.", "_name_": "space", "_required_": true, "_attrs_order_": ["used", "used_by_dataset", "used_by_reservation", "used_by_snapshots", "available"]}, "enabled_services": {"additionalProperties": false, "properties": {"MIDDLEWARE": {"description": "Array of middleware audit event types that are enabled.", "items": [{}], "title": "MIDDLEWARE", "type": "array", "_name_": "MIDDLEWARE", "_required_": true}, "SMB": {"description": "Array of SMB share names or audit event types that are enabled.", "items": [{}], "title": "SMB", "type": "array", "_name_": "SMB", "_required_": true}, "SUDO": {"description": "Array of sudo commands or users that are being audited.", "items": [{"type": "string"}], "title": "SUDO", "type": "array", "_name_": "SUDO", "_required_": true}}, "required": ["MIDDLEWARE", "SMB", "SUDO"], "title": "enabled_services", "type": "object", "description": "JSON object with key denoting service, and value containing a JSON array of what aspects of this service are being audited. In the case of the SMB audit, the list contains share names of shares for which auditing is enabled.", "_name_": "enabled_services", "_required_": true, "_attrs_order_": ["MIDDLEWARE", "SMB", "SUDO"]}}, "required": ["id", "retention", "reservation", "quota", "quota_fill_warning", "quota_fill_critical", "remote_logging_enabled", "space", "enabled_services"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "retention", "reservation", "quota", "quota_fill_warning", "quota_fill_critical", "remote_logging_enabled", "space", "enabled_services"]}]}, "audit.download_report": {"description": "Download the audit report with the specified name from the server.\nNote that users will only be able to download reports that they personally\ngenerated.", "cli_description": "Download the audit report with the specified name from the server", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_AUDIT_READ"], "accepts": [{"additionalProperties": false, "properties": {"report_name": {"description": "Name of the audit report to download.", "title": "report_name", "type": "string", "_name_": "report_name", "_required_": true}}, "required": ["report_name"], "title": "data", "type": "object", "description": "AuditDownloadReportArgs parameters.", "_name_": "data", "_required_": true, "_attrs_order_": ["report_name"]}], "returns": [{"description": "Returns `null` when the audit report download is initiated.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "audit.export": {"description": "Generate an audit report based on the specified `query-filters` and\n`query-options` for the specified `services` in the specified `export_format`.\n\nSupported export_formats are CSV, JSON, and YAML. The endpoint returns a\nlocal filesystem path where the resulting audit report is located.", "cli_description": "Generate an audit report based on the specified `query-filters` and `query-options` for the specified `services` in the specified `export_format`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_AUDIT_READ"], "accepts": [{"additionalProperties": false, "properties": {"services": {"default": ["MIDDLEWARE"], "description": "Array of services to include in the audit query.", "items": [{"enum": ["MIDDLEWARE", "SMB", "SUDO", "SYSTEM"], "type": "string"}], "title": "services", "type": "array", "_name_": "services", "_required_": false}, "query-filters": {"default": [], "description": "Array of filters to apply to the audit query results.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "query-filters", "type": "array", "_name_": "query-filters", "_required_": false}, "query-options": {"additionalProperties": false, "description": "If the query-option `force_sql_filters` is true, then the query will be converted into a more efficient form for better performance. This will not be possible if filters use keys within `svc_data` and `event_data`.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "query-options", "type": "object", "_name_": "query-options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}, "remote_controller": {"default": false, "description": "HA systems may direct the query to the 'remote' controller by including 'remote_controller=True'. The default is the 'current' controller.", "title": "remote_controller", "type": "boolean", "_name_": "remote_controller", "_required_": false}, "export_format": {"default": "JSON", "description": "Format for exporting audit data.", "enum": ["CSV", "JSON", "YAML"], "title": "export_format", "type": "string", "_name_": "export_format", "_required_": false}}, "title": "data", "type": "object", "description": "Audit export configuration specifying services, filters, and format.", "_name_": "data", "_required_": false, "_attrs_order_": ["services", "query-filters", "query-options", "remote_controller", "export_format"]}], "returns": [{"description": "Path to the exported audit data file.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "audit.query": {"description": "Query contents of audit databases specified by `services`.", "cli_description": "Query contents of audit databases specified by `services`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_AUDIT_READ"], "accepts": [{"additionalProperties": false, "properties": {"services": {"default": ["MIDDLEWARE"], "description": "Array of services to include in the audit query.", "items": [{"enum": ["MIDDLEWARE", "SMB", "SUDO", "SYSTEM"], "type": "string"}], "title": "services", "type": "array", "_name_": "services", "_required_": false}, "query-filters": {"default": [], "description": "Array of filters to apply to the audit query results.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "query-filters", "type": "array", "_name_": "query-filters", "_required_": false}, "query-options": {"additionalProperties": false, "description": "If the query-option `force_sql_filters` is true, then the query will be converted into a more efficient form for better performance. This will not be possible if filters use keys within `svc_data` and `event_data`.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "query-options", "type": "object", "_name_": "query-options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}, "remote_controller": {"default": false, "description": "HA systems may direct the query to the 'remote' controller by including 'remote_controller=True'. The default is the 'current' controller.", "title": "remote_controller", "type": "boolean", "_name_": "remote_controller", "_required_": false}}, "title": "data", "type": "object", "description": "Audit query configuration specifying services, filters, and options.", "_name_": "data", "_required_": false, "_attrs_order_": ["services", "query-filters", "query-options", "remote_controller"]}], "returns": [{"anyOf": [{"type": "integer"}, {"additionalProperties": true, "properties": {"audit_id": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "null"}], "description": "GUID uniquely identifying this specific audit event.", "title": "audit_id", "_name_": "audit_id", "_required_": false}, "message_timestamp": {"description": "Unix timestamp for when the audit event was written to the auditing database.", "title": "message_timestamp", "type": "integer", "_name_": "message_timestamp", "_required_": false}, "timestamp": {"description": "Converted ISO-8601 timestamp from application recording when event occurred.", "format": "date-time", "title": "timestamp", "type": "string", "_name_": "timestamp", "_required_": false}, "address": {"description": "IP address of client performing action that generated the audit message.", "title": "address", "type": "string", "_name_": "address", "_required_": false}, "username": {"description": "Username used by client performing action.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "session": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "null"}], "description": "GUID uniquely identifying the client session.", "title": "session", "_name_": "session", "_required_": false}, "service": {"description": "Name of the service that generated the message. This will be one of the names specified in `services`.", "enum": ["MIDDLEWARE", "SMB", "SUDO", "SYSTEM"], "title": "service", "type": "string", "_name_": "service", "_required_": false}, "service_data": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "JSON object containing variable data depending on the particular service. See TrueNAS auditing documentation for the service in question.", "title": "service_data", "_name_": "service_data", "_required_": false}, "event": {"description": "Name of the event type that generated the audit record. Each service has its own unique event identifiers.", "title": "event", "type": "string", "_name_": "event", "_required_": false}, "event_data": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "JSON object containing variable data depending on the particular event type. See TrueNAS auditing documentation for the service in question.", "title": "event_data", "_name_": "event_data", "_required_": false}, "success": {"description": "The action generating the event message succeeded.", "title": "success", "type": "boolean", "_name_": "success", "_required_": false}}, "title": "AuditQueryResultItem", "type": "object", "_attrs_order_": ["audit_id", "message_timestamp", "timestamp", "address", "username", "session", "service", "service_data", "event", "event_data", "success"]}, {"items": [{"additionalProperties": true, "properties": {"audit_id": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "null"}], "description": "GUID uniquely identifying this specific audit event.", "title": "audit_id", "_name_": "audit_id", "_required_": false}, "message_timestamp": {"description": "Unix timestamp for when the audit event was written to the auditing database.", "title": "message_timestamp", "type": "integer", "_name_": "message_timestamp", "_required_": false}, "timestamp": {"description": "Converted ISO-8601 timestamp from application recording when event occurred.", "format": "date-time", "title": "timestamp", "type": "string", "_name_": "timestamp", "_required_": false}, "address": {"description": "IP address of client performing action that generated the audit message.", "title": "address", "type": "string", "_name_": "address", "_required_": false}, "username": {"description": "Username used by client performing action.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "session": {"anyOf": [{"type": "string"}, {"type": "integer"}, {"type": "null"}], "description": "GUID uniquely identifying the client session.", "title": "session", "_name_": "session", "_required_": false}, "service": {"description": "Name of the service that generated the message. This will be one of the names specified in `services`.", "enum": ["MIDDLEWARE", "SMB", "SUDO", "SYSTEM"], "title": "service", "type": "string", "_name_": "service", "_required_": false}, "service_data": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "JSON object containing variable data depending on the particular service. See TrueNAS auditing documentation for the service in question.", "title": "service_data", "_name_": "service_data", "_required_": false}, "event": {"description": "Name of the event type that generated the audit record. Each service has its own unique event identifiers.", "title": "event", "type": "string", "_name_": "event", "_required_": false}, "event_data": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "JSON object containing variable data depending on the particular event type. See TrueNAS auditing documentation for the service in question.", "title": "event_data", "_name_": "event_data", "_required_": false}, "success": {"description": "The action generating the event message succeeded.", "title": "success", "type": "boolean", "_name_": "success", "_required_": false}}, "title": "AuditQueryResultItem", "type": "object", "_attrs_order_": ["audit_id", "message_timestamp", "timestamp", "address", "username", "session", "service", "service_data", "event", "event_data", "success"]}], "type": "array"}], "description": "Audit query results.", "title": "result", "_name_": "result", "_required_": true}]}, "audit.update": {"description": "Update default audit settings.\n\nThe following fields contain read-only data and are returned in calls\nto `audit.config` and `audit.update`:\n- `space`\n- `remote_logging_enabled`\n- `enabled_services`", "cli_description": "Update default audit settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_AUDIT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"retention": {"description": "Number of days to retain local audit messages.", "maximum": 30, "minimum": 1, "title": "retention", "type": "integer", "_name_": "retention", "_required_": false}, "reservation": {"description": "Size in GiB of refreservation to set on ZFS dataset where the audit databases are stored. The refreservation specifies the minimum amount of space guaranteed to the dataset, and counts against the space available for other datasets in the zpool where the audit dataset is located.", "maximum": 100, "minimum": 0, "title": "reservation", "type": "integer", "_name_": "reservation", "_required_": false}, "quota": {"description": "Size in GiB of the maximum amount of space that may be consumed by the dataset where the audit dabases are stored.", "maximum": 100, "minimum": 0, "title": "quota", "type": "integer", "_name_": "quota", "_required_": false}, "quota_fill_warning": {"description": "Percentage used of dataset quota at which to generate a warning alert.", "maximum": 80, "minimum": 5, "title": "quota_fill_warning", "type": "integer", "_name_": "quota_fill_warning", "_required_": false}, "quota_fill_critical": {"description": "Percentage used of dataset quota at which to generate a critical alert.", "maximum": 95, "minimum": 50, "title": "quota_fill_critical", "type": "integer", "_name_": "quota_fill_critical", "_required_": false}}, "title": "data", "type": "object", "description": "Updated audit configuration settings.", "_name_": "data", "_required_": true, "_attrs_order_": ["retention", "reservation", "quota", "quota_fill_warning", "quota_fill_critical"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the audit configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "retention": {"description": "Number of days to retain local audit messages.", "maximum": 30, "minimum": 1, "title": "retention", "type": "integer", "_name_": "retention", "_required_": true}, "reservation": {"description": "Size in GiB of refreservation to set on ZFS dataset where the audit databases are stored. The refreservation specifies the minimum amount of space guaranteed to the dataset, and counts against the space available for other datasets in the zpool where the audit dataset is located.", "maximum": 100, "minimum": 0, "title": "reservation", "type": "integer", "_name_": "reservation", "_required_": true}, "quota": {"description": "Size in GiB of the maximum amount of space that may be consumed by the dataset where the audit dabases are stored.", "maximum": 100, "minimum": 0, "title": "quota", "type": "integer", "_name_": "quota", "_required_": true}, "quota_fill_warning": {"description": "Percentage used of dataset quota at which to generate a warning alert.", "maximum": 80, "minimum": 5, "title": "quota_fill_warning", "type": "integer", "_name_": "quota_fill_warning", "_required_": true}, "quota_fill_critical": {"description": "Percentage used of dataset quota at which to generate a critical alert.", "maximum": 95, "minimum": 50, "title": "quota_fill_critical", "type": "integer", "_name_": "quota_fill_critical", "_required_": true}, "remote_logging_enabled": {"description": "Logging to a remote syslog server is enabled on TrueNAS, and audit logs are included in what is sent remotely.", "title": "remote_logging_enabled", "type": "boolean", "_name_": "remote_logging_enabled", "_required_": true}, "space": {"additionalProperties": false, "properties": {"used": {"description": "Total space used by the audit dataset in bytes.", "title": "used", "type": "integer", "_name_": "used", "_required_": true}, "used_by_dataset": {"description": "Space used by the dataset itself (not including snapshots or reservations) in bytes.", "title": "used_by_dataset", "type": "integer", "_name_": "used_by_dataset", "_required_": true}, "used_by_reservation": {"description": "Space reserved for the dataset in bytes.", "title": "used_by_reservation", "type": "integer", "_name_": "used_by_reservation", "_required_": true}, "used_by_snapshots": {"description": "Space used by snapshots of the audit dataset in bytes.", "title": "used_by_snapshots", "type": "integer", "_name_": "used_by_snapshots", "_required_": true}, "available": {"description": "Available space remaining for the audit dataset in bytes.", "title": "available", "type": "integer", "_name_": "available", "_required_": true}}, "required": ["used", "used_by_dataset", "used_by_reservation", "used_by_snapshots", "available"], "title": "space", "type": "object", "description": "ZFS dataset properties relating space used and available for the dataset where the audit databases are written.", "_name_": "space", "_required_": true, "_attrs_order_": ["used", "used_by_dataset", "used_by_reservation", "used_by_snapshots", "available"]}, "enabled_services": {"additionalProperties": false, "properties": {"MIDDLEWARE": {"description": "Array of middleware audit event types that are enabled.", "items": [{}], "title": "MIDDLEWARE", "type": "array", "_name_": "MIDDLEWARE", "_required_": true}, "SMB": {"description": "Array of SMB share names or audit event types that are enabled.", "items": [{}], "title": "SMB", "type": "array", "_name_": "SMB", "_required_": true}, "SUDO": {"description": "Array of sudo commands or users that are being audited.", "items": [{"type": "string"}], "title": "SUDO", "type": "array", "_name_": "SUDO", "_required_": true}}, "required": ["MIDDLEWARE", "SMB", "SUDO"], "title": "enabled_services", "type": "object", "description": "JSON object with key denoting service, and value containing a JSON array of what aspects of this service are being audited. In the case of the SMB audit, the list contains share names of shares for which auditing is enabled.", "_name_": "enabled_services", "_required_": true, "_attrs_order_": ["MIDDLEWARE", "SMB", "SUDO"]}}, "required": ["id", "retention", "reservation", "quota", "quota_fill_warning", "quota_fill_critical", "remote_logging_enabled", "space", "enabled_services"], "title": "result", "type": "object", "description": "The updated audit configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "retention", "reservation", "quota", "quota_fill_warning", "quota_fill_critical", "remote_logging_enabled", "space", "enabled_services"]}]}, "auth.generate_onetime_password REDACTED, "cli_description": "Generate a password REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"username": {"description": "Username to generate a one-time password REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}}, "required": ["username"], "title": "generate_single_use_password REDACTED, "type": "object", "description": "AuthGenerateOnetimePassword REDACTED, "_name_": "generate_single_use_password REDACTED, "_required_": true, "_attrs_order_": ["username"]}], "returns": [{"description": "Generated one-time password REDACTED, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "auth.generate_token REDACTED, in seconds. The token REDACTED, "cli_description": "Generate a token REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"anyOf": [{"type": "integer"}, {"type": "null"}], "default": 600, "description": "Time-to-live for the token REDACTED, "title": "ttl", "_name_": "ttl", "_required_": false}, {"default": {}, "description": "Additional attributes to embed in the token REDACTED, "title": "attrs", "type": "object", "_name_": "attrs", "_required_": false}, {"default": true, "description": "Whether the token REDACTED, "title": "match_origin", "type": "boolean", "_name_": "match_origin", "_required_": false}, {"default": false, "description": "Whether the token REDACTED, "title": "single_use", "type": "boolean", "_name_": "single_use", "_required_": false}], "returns": [{"description": "Generated authentication token REDACTED, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "auth.login": {"description": "Authenticate session using username and password REDACTED, "cli_description": "Authenticate session using username and password REDACTED, "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, {"description": "Password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "One-time password REDACTED, "title": "otp_token REDACTED, "_name_": "otp_token REDACTED, "_required_": false}], "returns": [{"description": "Returns `true` if login was successful, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "auth.login_ex": {"description": "Authenticate using one of a variety of mechanisms\n\nNOTE: mechanisms with a _PLAIN suffix indicate that they involve\npassing plain-text password REDACTED, "cli_description": "Authenticate using one of a variety of mechanisms", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Authentication data specifying mechanism and credential REDACTED, "discriminator": {"mapping": {"API_KEY REDACTED, "OTP_TOKEN REDACTED, "PASSWORD REDACTED, "TOKEN REDACTED}, "propertyName": "mechanism"}, "oneOf": [{"additionalProperties": false, "properties": {"mechanism": {"const": "API_KEY REDACTED, "description": "Authentication mechanism identifier for plain API key authentication.", "enum": ["API_KEY REDACTED, "title": "mechanism", "type": "string", "_name_": "mechanism", "_required_": true}, "username": {"description": "Username associated with the API key.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "api_key REDACTED, "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}, "login_options": {"additionalProperties": false, "properties": {"user_info": {"default": true, "description": "Whether to include detailed user information in the authentication response.", "title": "user_info", "type": "boolean", "_name_": "user_info", "_required_": false}}, "title": "login_options", "type": "object", "default": {"user_info": true}, "description": "Additional options for the authentication process.", "_name_": "login_options", "_required_": false, "_attrs_order_": ["user_info"]}}, "required": ["mechanism", "username", "api_key REDACTED, "title": "AuthApiKeyPlain", "type": "object", "_attrs_order_": ["mechanism", "username", "api_key REDACTED, "login_options"]}, {"additionalProperties": false, "properties": {"mechanism": {"const": "PASSWORD REDACTED, "description": "Authentication mechanism identifier for plain password REDACTED, "enum": ["PASSWORD REDACTED, "title": "mechanism", "type": "string", "_name_": "mechanism", "_required_": true}, "username": {"description": "Username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "login_options": {"additionalProperties": false, "properties": {"user_info": {"default": true, "description": "Whether to include detailed user information in the authentication response.", "title": "user_info", "type": "boolean", "_name_": "user_info", "_required_": false}}, "title": "login_options", "type": "object", "default": {"user_info": true}, "description": "Additional options for the authentication process.", "_name_": "login_options", "_required_": false, "_attrs_order_": ["user_info"]}}, "required": ["mechanism", "username", "password REDACTED, "title": "AuthPassword REDACTED, "type": "object", "_attrs_order_": ["mechanism", "username", "password REDACTED, "login_options"]}, {"additionalProperties": false, "properties": {"mechanism": {"const": "TOKEN REDACTED, "description": "Authentication mechanism type for plain token REDACTED, "enum": ["TOKEN REDACTED, "title": "mechanism", "type": "string", "_name_": "mechanism", "_required_": true}, "token REDACTED, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "login_options": {"additionalProperties": false, "properties": {"user_info": {"default": true, "description": "Whether to include detailed user information in the authentication response.", "title": "user_info", "type": "boolean", "_name_": "user_info", "_required_": false}}, "title": "login_options", "type": "object", "default": {"user_info": true}, "description": "Common authentication options and settings.", "_name_": "login_options", "_required_": false, "_attrs_order_": ["user_info"]}}, "required": ["mechanism", "token REDACTED, "title": "AuthToken REDACTED, "type": "object", "_attrs_order_": ["mechanism", "token REDACTED, "login_options"]}, {"additionalProperties": false, "properties": {"mechanism": {"const": "OTP_TOKEN REDACTED, "description": "Authentication mechanism identifier for one-time password REDACTED, "enum": ["OTP_TOKEN REDACTED, "title": "mechanism", "type": "string", "_name_": "mechanism", "_required_": true}, "otp_token REDACTED, "title": "otp_token REDACTED, "type": "string", "_name_": "otp_token REDACTED, "_required_": true}, "login_options": {"additionalProperties": false, "properties": {"user_info": {"default": true, "description": "Whether to include detailed user information in the authentication response.", "title": "user_info", "type": "boolean", "_name_": "user_info", "_required_": false}}, "title": "login_options", "type": "object", "default": {"user_info": true}, "description": "Additional options for the authentication process.", "_name_": "login_options", "_required_": false, "_attrs_order_": ["user_info"]}}, "required": ["mechanism", "otp_token REDACTED, "title": "AuthOTPToken REDACTED, "type": "object", "_attrs_order_": ["mechanism", "otp_token REDACTED, "login_options"]}], "title": "login_data", "_name_": "login_data", "_required_": true}], "returns": [{"description": "Authentication response indicating success, failure, or additional steps required.", "discriminator": {"mapping": {"AUTH_ERR": "#/$defs/AuthRespAuthErr", "EXPIRED": "#/$defs/AuthRespExpired", "OTP_REQUIRED": "#/$defs/AuthRespOTPRequired", "REDIRECT": "#/$defs/AuthRespAuthRedirect", "SUCCESS": "#/$defs/AuthRespSuccess"}, "propertyName": "response_type"}, "oneOf": [{"additionalProperties": false, "properties": {"response_type": {"const": "SUCCESS", "description": "Authentication response type indicating successful login.", "enum": ["SUCCESS"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}, "user_info": {"anyOf": [{"additionalProperties": false, "properties": {"pw_name": {"description": "Name of the user.", "title": "pw_name", "type": "string", "_name_": "pw_name", "_required_": true}, "pw_gecos": {"description": "Full username or comment field.", "title": "pw_gecos", "type": "string", "_name_": "pw_gecos", "_required_": true}, "pw_dir": {"description": "User home directory.", "title": "pw_dir", "type": "string", "_name_": "pw_dir", "_required_": true}, "pw_shell": {"description": "User command line interpreter.", "title": "pw_shell", "type": "string", "_name_": "pw_shell", "_required_": true}, "pw_uid": {"description": "Numerical user ID of the user.", "title": "pw_uid", "type": "integer", "_name_": "pw_uid", "_required_": true}, "pw_gid": {"description": "Numerical group id for the user's primary group.", "title": "pw_gid", "type": "integer", "_name_": "pw_gid", "_required_": true}, "grouplist": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "Optional array of group IDs for groups of which this account is a member. If `get_groups` is not specified, this value will be `null`.", "title": "grouplist", "_name_": "grouplist", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional SID value for the account that is present if `sid_info` is specified in payload.", "title": "sid", "_name_": "sid", "_required_": true}, "source": {"description": "The source for the user account.", "enum": ["LOCAL", "ACTIVEDIRECTORY", "LDAP"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "local": {"description": "The account is local to TrueNAS or provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "attributes": {"description": "Custom user attributes and metadata.", "title": "attributes", "type": "object", "_name_": "attributes", "_required_": true}, "two_factor_config": {"description": "Two-factor authentication configuration for the user.", "title": "two_factor_config", "type": "object", "_name_": "two_factor_config", "_required_": true}, "privilege": {"description": "User privilege and role information.", "title": "privilege", "type": "object", "_name_": "privilege", "_required_": true}, "account_attributes": {"description": "Array of account attribute names available for this user.", "items": [{"type": "string"}], "title": "account_attributes", "type": "array", "_name_": "account_attributes", "_required_": true}}, "required": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local", "attributes", "two_factor_config", "privilege", "account_attributes"], "title": "AuthUserInfo", "type": "object", "_attrs_order_": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local", "attributes", "two_factor_config", "privilege", "account_attributes"]}, {"type": "null"}], "description": "Authenticated user information or `null` if not available.", "title": "user_info", "_name_": "user_info", "_required_": true}, "authenticator": {"description": "Authentication level achieved (LEVEL_1 for password REDACTED, LEVEL_2 for two-factor).", "enum": ["LEVEL_1", "LEVEL_2"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}}, "required": ["response_type", "user_info", "authenticator"], "title": "AuthRespSuccess", "type": "object", "_attrs_order_": ["response_type", "user_info", "authenticator"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "AUTH_ERR", "description": "Authentication response type indicating authentication failure.", "enum": ["AUTH_ERR"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}}, "required": ["response_type"], "title": "AuthRespAuthErr", "type": "object", "_attrs_order_": ["response_type"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "EXPIRED", "description": "Authentication response type indicating the session or token REDACTED, "enum": ["EXPIRED"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}}, "required": ["response_type"], "title": "AuthRespExpired", "type": "object", "_attrs_order_": ["response_type"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "OTP_REQUIRED", "description": "Authentication response type indicating one-time password REDACTED, "enum": ["OTP_REQUIRED"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}, "username": {"description": "Username for which OTP is required.", "title": "username", "type": "string", "_name_": "username", "_required_": true}}, "required": ["response_type", "username"], "title": "AuthRespOTPRequired", "type": "object", "_attrs_order_": ["response_type", "username"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "REDIRECT", "description": "Authentication response type indicating redirect is required.", "enum": ["REDIRECT"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}, "urls": {"description": "Array of URLs to redirect to for authentication completion.", "items": [{"type": "string"}], "title": "urls", "type": "array", "_name_": "urls", "_required_": true}}, "required": ["response_type", "urls"], "title": "AuthRespAuthRedirect", "type": "object", "_attrs_order_": ["response_type", "urls"]}], "title": "result", "_name_": "result", "_required_": true}]}, "auth.login_ex_continue": {"description": "Continue in-progress authentication attempt. This endpoint should be\ncalled to continue an auth.login_ex attempt that returned OTP_REQUIRED.\n\nThis is a convenience wrapper around auth.login_ex for API consumers.\n\nparams:\n mechanism: the mechanism by which to continue authentication.\n Currently the only supported mechanism here is OTP_TOKEN REDACTED, "cli_description": "Continue in-progress authentication attempt", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"additionalProperties": false, "properties": {"mechanism": {"const": "OTP_TOKEN REDACTED, "description": "Authentication mechanism identifier for one-time password REDACTED, "enum": ["OTP_TOKEN REDACTED, "title": "mechanism", "type": "string", "_name_": "mechanism", "_required_": true}, "otp_token REDACTED, "title": "otp_token REDACTED, "type": "string", "_name_": "otp_token REDACTED, "_required_": true}, "login_options": {"additionalProperties": false, "properties": {"user_info": {"default": true, "description": "Whether to include detailed user information in the authentication response.", "title": "user_info", "type": "boolean", "_name_": "user_info", "_required_": false}}, "title": "login_options", "type": "object", "default": {"user_info": true}, "description": "Additional options for the authentication process.", "_name_": "login_options", "_required_": false, "_attrs_order_": ["user_info"]}}, "required": ["mechanism", "otp_token REDACTED, "title": "login_data", "type": "object", "description": "OTP token REDACTED, "_name_": "login_data", "_required_": true, "_attrs_order_": ["mechanism", "otp_token REDACTED, "login_options"]}], "returns": [{"description": "Authentication response after continuing with OTP token REDACTED, "discriminator": {"mapping": {"AUTH_ERR": "#/$defs/AuthRespAuthErr", "EXPIRED": "#/$defs/AuthRespExpired", "OTP_REQUIRED": "#/$defs/AuthRespOTPRequired", "REDIRECT": "#/$defs/AuthRespAuthRedirect", "SUCCESS": "#/$defs/AuthRespSuccess"}, "propertyName": "response_type"}, "oneOf": [{"additionalProperties": false, "properties": {"response_type": {"const": "SUCCESS", "description": "Authentication response type indicating successful login.", "enum": ["SUCCESS"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}, "user_info": {"anyOf": [{"additionalProperties": false, "properties": {"pw_name": {"description": "Name of the user.", "title": "pw_name", "type": "string", "_name_": "pw_name", "_required_": true}, "pw_gecos": {"description": "Full username or comment field.", "title": "pw_gecos", "type": "string", "_name_": "pw_gecos", "_required_": true}, "pw_dir": {"description": "User home directory.", "title": "pw_dir", "type": "string", "_name_": "pw_dir", "_required_": true}, "pw_shell": {"description": "User command line interpreter.", "title": "pw_shell", "type": "string", "_name_": "pw_shell", "_required_": true}, "pw_uid": {"description": "Numerical user ID of the user.", "title": "pw_uid", "type": "integer", "_name_": "pw_uid", "_required_": true}, "pw_gid": {"description": "Numerical group id for the user's primary group.", "title": "pw_gid", "type": "integer", "_name_": "pw_gid", "_required_": true}, "grouplist": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "Optional array of group IDs for groups of which this account is a member. If `get_groups` is not specified, this value will be `null`.", "title": "grouplist", "_name_": "grouplist", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional SID value for the account that is present if `sid_info` is specified in payload.", "title": "sid", "_name_": "sid", "_required_": true}, "source": {"description": "The source for the user account.", "enum": ["LOCAL", "ACTIVEDIRECTORY", "LDAP"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "local": {"description": "The account is local to TrueNAS or provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "attributes": {"description": "Custom user attributes and metadata.", "title": "attributes", "type": "object", "_name_": "attributes", "_required_": true}, "two_factor_config": {"description": "Two-factor authentication configuration for the user.", "title": "two_factor_config", "type": "object", "_name_": "two_factor_config", "_required_": true}, "privilege": {"description": "User privilege and role information.", "title": "privilege", "type": "object", "_name_": "privilege", "_required_": true}, "account_attributes": {"description": "Array of account attribute names available for this user.", "items": [{"type": "string"}], "title": "account_attributes", "type": "array", "_name_": "account_attributes", "_required_": true}}, "required": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local", "attributes", "two_factor_config", "privilege", "account_attributes"], "title": "AuthUserInfo", "type": "object", "_attrs_order_": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local", "attributes", "two_factor_config", "privilege", "account_attributes"]}, {"type": "null"}], "description": "Authenticated user information or `null` if not available.", "title": "user_info", "_name_": "user_info", "_required_": true}, "authenticator": {"description": "Authentication level achieved (LEVEL_1 for password REDACTED, LEVEL_2 for two-factor).", "enum": ["LEVEL_1", "LEVEL_2"], "title": "authenticator", "type": "string", "_name_": "authenticator", "_required_": true}}, "required": ["response_type", "user_info", "authenticator"], "title": "AuthRespSuccess", "type": "object", "_attrs_order_": ["response_type", "user_info", "authenticator"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "AUTH_ERR", "description": "Authentication response type indicating authentication failure.", "enum": ["AUTH_ERR"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}}, "required": ["response_type"], "title": "AuthRespAuthErr", "type": "object", "_attrs_order_": ["response_type"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "EXPIRED", "description": "Authentication response type indicating the session or token REDACTED, "enum": ["EXPIRED"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}}, "required": ["response_type"], "title": "AuthRespExpired", "type": "object", "_attrs_order_": ["response_type"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "OTP_REQUIRED", "description": "Authentication response type indicating one-time password REDACTED, "enum": ["OTP_REQUIRED"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}, "username": {"description": "Username for which OTP is required.", "title": "username", "type": "string", "_name_": "username", "_required_": true}}, "required": ["response_type", "username"], "title": "AuthRespOTPRequired", "type": "object", "_attrs_order_": ["response_type", "username"]}, {"additionalProperties": false, "properties": {"response_type": {"const": "REDIRECT", "description": "Authentication response type indicating redirect is required.", "enum": ["REDIRECT"], "title": "response_type", "type": "string", "_name_": "response_type", "_required_": true}, "urls": {"description": "Array of URLs to redirect to for authentication completion.", "items": [{"type": "string"}], "title": "urls", "type": "array", "_name_": "urls", "_required_": true}}, "required": ["response_type", "urls"], "title": "AuthRespAuthRedirect", "type": "object", "_attrs_order_": ["response_type", "urls"]}], "title": "result", "_name_": "result", "_required_": true}]}, "auth.login_with_api_key REDACTED, "cli_description": "Authenticate session using API Key", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "API key for authentication (masked for security).", "title": "api_key REDACTED, "type": "string", "_name_": "api_key REDACTED, "_required_": true}], "returns": [{"description": "Returns `true` if API key login was successful, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "auth.login_with_token REDACTED, "cli_description": "Authenticate session using token REDACTED, "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Authentication token REDACTED, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}], "returns": [{"description": "Returns `true` if token REDACTED, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "auth.logout": {"description": "Deauthenticates an app and if a token REDACTED, removes that from the\nsession.", "cli_description": "Deauthenticates an app and if a token REDACTED, removes that from the session", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"const": true, "description": "Returns `true` when logout is successful.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "auth.me": {"description": "Returns currently logged-in user.", "cli_description": "Returns currently logged-in user", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"pw_name": {"description": "Name of the user.", "title": "pw_name", "type": "string", "_name_": "pw_name", "_required_": true}, "pw_gecos": {"description": "Full username or comment field.", "title": "pw_gecos", "type": "string", "_name_": "pw_gecos", "_required_": true}, "pw_dir": {"description": "User home directory.", "title": "pw_dir", "type": "string", "_name_": "pw_dir", "_required_": true}, "pw_shell": {"description": "User command line interpreter.", "title": "pw_shell", "type": "string", "_name_": "pw_shell", "_required_": true}, "pw_uid": {"description": "Numerical user ID of the user.", "title": "pw_uid", "type": "integer", "_name_": "pw_uid", "_required_": true}, "pw_gid": {"description": "Numerical group id for the user's primary group.", "title": "pw_gid", "type": "integer", "_name_": "pw_gid", "_required_": true}, "grouplist": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "Optional array of group IDs for groups of which this account is a member. If `get_groups` is not specified, this value will be `null`.", "title": "grouplist", "_name_": "grouplist", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional SID value for the account that is present if `sid_info` is specified in payload.", "title": "sid", "_name_": "sid", "_required_": true}, "source": {"description": "The source for the user account.", "enum": ["LOCAL", "ACTIVEDIRECTORY", "LDAP"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "local": {"description": "The account is local to TrueNAS or provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "attributes": {"description": "Custom user attributes and metadata.", "title": "attributes", "type": "object", "_name_": "attributes", "_required_": true}, "two_factor_config": {"description": "Two-factor authentication configuration for the user.", "title": "two_factor_config", "type": "object", "_name_": "two_factor_config", "_required_": true}, "privilege": {"description": "User privilege and role information.", "title": "privilege", "type": "object", "_name_": "privilege", "_required_": true}, "account_attributes": {"description": "Array of account attribute names available for this user.", "items": [{"type": "string"}], "title": "account_attributes", "type": "array", "_name_": "account_attributes", "_required_": true}}, "required": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local", "attributes", "two_factor_config", "privilege", "account_attributes"], "title": "result", "type": "object", "description": "AuthMeResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local", "attributes", "two_factor_config", "privilege", "account_attributes"]}]}, "auth.mechanism_choices": {"description": "Get list of available authentication mechanisms available for auth.login_ex ", "cli_description": "Get list of available authentication mechanisms available for auth", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available authentication mechanisms.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "auth.sessions": {"description": "Returns list of active auth sessions.\n\nExample of return value:\n\n[\n {\n \"id\": \"NyhB1J5vjPjIV82yZ6caU12HLA1boDJcZNWuVQM4hQWuiyUWMGZTz2ElDp7Yk87d\",\n \"origin\": \"192.168.0.3:40392\",\n \"credential REDACTED,\n \"credential REDACTED},\n \"current\": True,\n \"internal\": False,\n \"created_at\": {\"$date\": 1545842426070}\n }\n]\n\n`credential REDACTED, `ROOT_TCP_SOCKET`, `LOGIN_PASSWORD REDACTED, `API_KEY REDACTED,\ndepending on what authentication method was used.\nFor `UNIX_SOCKET` and `LOGIN_PASSWORD REDACTED, call this method with following arguments:\n\n[\n [\n [\"internal\", \"=\", True]\n ]\n]", "cli_description": "Returns list of active auth sessions", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["AUTH_SESSIONS_READ", "AUTH_SESSIONS_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authentication session.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "current": {"description": "Whether this is the current active session.", "title": "current", "type": "boolean", "_name_": "current", "_required_": false}, "internal": {"description": "Whether this is an internal system session.", "title": "internal", "type": "boolean", "_name_": "internal", "_required_": false}, "origin": {"description": "Origin information for the session (IP address, hostname, etc.).", "title": "origin", "type": "string", "_name_": "origin", "_required_": false}, "credential REDACTED, "enum": ["UNIX_SOCKET", "LOGIN_PASSWORD REDACTED, "LOGIN_TWOFACTOR", "LOGIN_ONETIME_PASSWORD REDACTED, "API_KEY REDACTED, "TOKEN REDACTED, "TRUENAS_NODE"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": false}, "credential REDACTED, "properties": {}, "title": "BaseCredential REDACTED, "type": "object", "_attrs_order_": []}, {"additionalProperties": false, "properties": {"username": {"description": "Username of the authenticated user.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "login_id": {"description": "Unique identifier for the login. ", "title": "login_id", "type": "string", "_name_": "login_id", "_required_": true}, "login_at": {"description": "Timestamp of when the user logged in.", "format": "date-time", "title": "login_at", "type": "string", "_name_": "login_at", "_required_": true}}, "required": ["username", "login_id", "login_at"], "title": "UserCredential REDACTED, "type": "object", "_attrs_order_": ["username", "login_id", "login_at"]}, {"additionalProperties": false, "properties": {"username": {"description": "Username of the authenticated user.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "login_id": {"description": "Unique identifier for the login. ", "title": "login_id", "type": "string", "_name_": "login_id", "_required_": true}, "login_at": {"description": "Timestamp of when the user logged in.", "format": "date-time", "title": "login_at", "type": "string", "_name_": "login_at", "_required_": true}, "api_key REDACTED, "properties": {"id": {"description": "Unique identifier for the API key.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the API key.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "name"], "title": "api_key REDACTED, "type": "object", "description": "API key information used for authentication.", "_name_": "api_key REDACTED, "_required_": true, "_attrs_order_": ["id", "name"]}}, "required": ["username", "login_id", "login_at", "api_key REDACTED, "title": "APIKeyCredential REDACTED, "type": "object", "_attrs_order_": ["username", "login_id", "login_at", "api_key REDACTED}, {"additionalProperties": false, "properties": {"parent": {"additionalProperties": false, "properties": {"credential REDACTED, "enum": ["UNIX_SOCKET", "LOGIN_PASSWORD REDACTED, "LOGIN_TWOFACTOR", "API_KEY REDACTED, "TOKEN REDACTED, "TRUENAS_NODE"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "credential REDACTED, "properties": {}, "title": "BaseCredential REDACTED, "type": "object", "_attrs_order_": []}, {"additionalProperties": false, "properties": {"username": {"description": "Username of the authenticated user.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "login_id": {"description": "Unique identifier for the login. ", "title": "login_id", "type": "string", "_name_": "login_id", "_required_": true}, "login_at": {"description": "Timestamp of when the user logged in.", "format": "date-time", "title": "login_at", "type": "string", "_name_": "login_at", "_required_": true}}, "required": ["username", "login_id", "login_at"], "title": "UserCredential REDACTED, "type": "object", "_attrs_order_": ["username", "login_id", "login_at"]}, {"additionalProperties": false, "properties": {"username": {"description": "Username of the authenticated user.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "login_id": {"description": "Unique identifier for the login. ", "title": "login_id", "type": "string", "_name_": "login_id", "_required_": true}, "login_at": {"description": "Timestamp of when the user logged in.", "format": "date-time", "title": "login_at", "type": "string", "_name_": "login_at", "_required_": true}, "api_key REDACTED, "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": true}}, "required": ["username", "login_id", "login_at", "api_key REDACTED, "title": "APIKeyCredential REDACTED, "type": "object", "_attrs_order_": ["username", "login_id", "login_at", "api_key REDACTED}, {"additionalProperties": false, "properties": {"parent": {"description": "Parent credential REDACTED, "title": "parent", "_name_": "parent", "_required_": true}, "login_id": {"description": "Unique identifier for the login. ", "title": "login_id", "type": "string", "_name_": "login_id", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Username associated with the token REDACTED, "title": "username", "_name_": "username", "_required_": true}}, "required": ["parent", "login_id", "username"], "title": "Token REDACTED, "type": "object", "_attrs_order_": ["parent", "login_id", "username"]}], "description": "Credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": true}}, "required": ["credential REDACTED, "credential REDACTED, "title": "parent", "type": "object", "description": "Parent credential REDACTED, "_name_": "parent", "_required_": true, "_attrs_order_": ["credential REDACTED, "credential REDACTED}, "login_id": {"description": "Unique identifier for the login. ", "title": "login_id", "type": "string", "_name_": "login_id", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Username associated with the token REDACTED, "title": "username", "_name_": "username", "_required_": true}}, "required": ["parent", "login_id", "username"], "title": "Token REDACTED, "type": "object", "_attrs_order_": ["parent", "login_id", "username"]}], "description": "Detailed credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}, "created_at": {"description": "Timestamp when the session was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": false}, "secure_transport": {"description": "Whether the session was established over a secure transport (HTTPS/WSS).", "title": "secure_transport", "type": "boolean", "_name_": "secure_transport", "_required_": false}}, "title": "AuthSessionsQueryResultItem", "type": "object", "_attrs_order_": ["id", "current", "internal", "origin", "credential REDACTED, "credential REDACTED, "created_at", "secure_transport"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authentication session.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "current": {"description": "Whether this is the current active session.", "title": "current", "type": "boolean", "_name_": "current", "_required_": false}, "internal": {"description": "Whether this is an internal system session.", "title": "internal", "type": "boolean", "_name_": "internal", "_required_": false}, "origin": {"description": "Origin information for the session (IP address, hostname, etc.).", "title": "origin", "type": "string", "_name_": "origin", "_required_": false}, "credential REDACTED, "enum": ["UNIX_SOCKET", "LOGIN_PASSWORD REDACTED, "LOGIN_TWOFACTOR", "LOGIN_ONETIME_PASSWORD REDACTED, "API_KEY REDACTED, "TOKEN REDACTED, "TRUENAS_NODE"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": false}, "credential REDACTED}, {}, {}, {}], "description": "Detailed credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}, "created_at": {"description": "Timestamp when the session was created.", "format": "date-time", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": false}, "secure_transport": {"description": "Whether the session was established over a secure transport (HTTPS/WSS).", "title": "secure_transport", "type": "boolean", "_name_": "secure_transport", "_required_": false}}, "title": "AuthSessionsQueryResultItem", "type": "object", "_attrs_order_": ["id", "current", "internal", "origin", "credential REDACTED, "credential REDACTED, "created_at", "secure_transport"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "auth.set_attribute": {"description": "Set current user's `attributes` dictionary `key` to `value`.\n\ne.g. Setting key=\"foo\" value=\"var\" will result in {\"attributes\": {\"foo\": \"bar\"}}", "cli_description": "Set current user's `attributes` dictionary `key` to `value`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Attribute key name.", "title": "key", "type": "string", "_name_": "key", "_required_": true}, {"description": "Attribute value to set.", "title": "value", "_name_": "value", "_required_": true}], "returns": [{"description": "Returns `null` when the attribute is successfully set.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "auth.terminate_other_sessions": {"description": "Terminates all other sessions (except the current one).", "cli_description": "Terminates all other sessions (except the current one)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["AUTH_SESSIONS_WRITE"], "accepts": [], "returns": [{"const": true, "description": "Returns `true` when other sessions are successfully terminated.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "auth.terminate_session": {"description": "Terminates session `id`.", "cli_description": "Terminates session `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["AUTH_SESSIONS_WRITE"], "accepts": [{"description": "Session ID to terminate.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `true` if the session was successfully terminated, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "auth.twofactor.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_SECURITY_READ", "SYSTEM_SECURITY_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether two-factor authentication is enabled system-wide.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "services": {"additionalProperties": false, "properties": {"ssh": {"default": false, "description": "Whether two-factor authentication is required for SSH connections.", "title": "ssh", "type": "boolean", "_name_": "ssh", "_required_": false}}, "title": "services", "type": "object", "description": "Configuration for which services require two-factor authentication.", "_name_": "services", "_required_": true, "_attrs_order_": ["ssh"]}, "window": {"description": "Time window in seconds for TOTP token REDACTED, "minimum": 0, "title": "window", "type": "integer", "_name_": "window", "_required_": true}, "id": {"description": "Unique identifier for the two-factor authentication configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["enabled", "services", "window", "id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["enabled", "services", "window", "id"]}]}, "auth.twofactor.update": {"description": "`window` extends the validity to `window` many counter ticks before and after the current one.\n\nUpdate Two-Factor Authentication Service Configuration.", "cli_description": "`window` extends the validity to `window` many counter ticks before and after the current one", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_SECURITY_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether two-factor authentication is enabled system-wide.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "services": {"additionalProperties": false, "properties": {"ssh": {"default": false, "description": "Whether two-factor authentication is required for SSH connections.", "title": "ssh", "type": "boolean", "_name_": "ssh", "_required_": false}}, "title": "services", "type": "object", "description": "Configuration for which services require two-factor authentication.", "_name_": "services", "_required_": false, "_attrs_order_": ["ssh"]}, "window": {"description": "Time window in seconds for TOTP token REDACTED, "minimum": 0, "title": "window", "type": "integer", "_name_": "window", "_required_": false}}, "title": "auth_twofactor_update", "type": "object", "description": "Updated two-factor authentication configuration settings.", "_name_": "auth_twofactor_update", "_required_": true, "_attrs_order_": ["enabled", "services", "window"]}], "returns": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether two-factor authentication is enabled system-wide.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "services": {"additionalProperties": false, "properties": {"ssh": {"default": false, "description": "Whether two-factor authentication is required for SSH connections.", "title": "ssh", "type": "boolean", "_name_": "ssh", "_required_": false}}, "title": "services", "type": "object", "description": "Configuration for which services require two-factor authentication.", "_name_": "services", "_required_": true, "_attrs_order_": ["ssh"]}, "window": {"description": "Time window in seconds for TOTP token REDACTED, "minimum": 0, "title": "window", "type": "integer", "_name_": "window", "_required_": true}, "id": {"description": "Unique identifier for the two-factor authentication configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["enabled", "services", "window", "id"], "title": "result", "type": "object", "description": "The updated two-factor authentication configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["enabled", "services", "window", "id"]}]}, "boot.attach": {"description": "Attach a disk to the boot pool, turning a stripe into a mirror.\n\n`expand` option will determine whether the new disk partition will be\n the maximum available or the same size as the current disk.", "cli_description": "Attach a disk to the boot pool, turning a stripe into a mirror", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DISK_WRITE"], "accepts": [{"description": "Device name or path to attach to the boot pool.", "title": "dev", "type": "string", "_name_": "dev", "_required_": true}, {"additionalProperties": false, "properties": {"expand": {"default": false, "description": "Whether to expand the boot pool after attaching the disk.", "title": "expand", "type": "boolean", "_name_": "expand", "_required_": false}}, "title": "options", "type": "object", "description": "Options for the attach operation.", "_name_": "options", "_required_": false, "_attrs_order_": ["expand"]}], "returns": [{"description": "Returns `null` when the disk is successfully attached to the boot pool.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "boot.detach": {"description": "Detach given `dev` from boot pool.", "cli_description": "Detach given `dev` from boot pool", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DISK_WRITE"], "accepts": [{"description": "Device name or path to detach from the boot pool.", "title": "dev", "type": "string", "_name_": "dev", "_required_": true}], "returns": [{"description": "Returns `null` when the disk is successfully detached from the boot pool.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "boot.get_disks": {"description": "Returns disks of the boot pool.", "cli_description": "Returns disks of the boot pool", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DISK_READ", "DISK_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of disk device names that are part of the boot pool.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "boot.get_state": {"description": "Returns the current state of the boot pool, including all vdevs, properties and datasets.", "cli_description": "Returns the current state of the boot pool, including all vdevs, properties and datasets", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the storage pool.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "status": {"description": "Current status of the pool.", "examples": ["ONLINE", "DEGRADED", "FAULTED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "path": {"description": "Filesystem path where the pool is mounted.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "scan": {"anyOf": [{"examples": [{"bytes_issued": null, "bytes_processed": null, "bytes_to_process": null, "end_time": null, "errors": null, "function": null, "pause": null, "percentage": null, "start_time": null, "state": null, "total_secs_left": null}], "type": "object"}, {"type": "null"}], "description": "Information about any active scrub or resilver operation. `null` if no operation is running.", "title": "scan", "_name_": "scan", "_required_": true}, "expand": {"anyOf": [{"examples": [{"bytes_reflowed": 978944, "bytes_to_reflow": 835584, "end_time": null, "expanding_vdev": 0, "percentage": 85.35564853556485, "start_time": null, "state": "FINISHED", "total_secs_left": null, "waiting_for_resilver": 0}], "type": "object"}, {"type": "null"}], "description": "Information about any active pool expansion operation. `null` if no expansion is running.", "title": "expand", "_name_": "expand", "_required_": true}, "is_upgraded": {"default": false, "description": "Whether this pool has been upgraded to the latest feature flags.", "title": "is_upgraded", "type": "boolean", "_name_": "is_upgraded", "_required_": false}, "healthy": {"description": "Whether the pool is in a healthy state with no errors or warnings.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "warning": {"description": "Whether the pool has warning conditions that require attention.", "title": "warning", "type": "boolean", "_name_": "warning", "_required_": true}, "status_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Detailed status code for the pool condition. `null` if not applicable.", "title": "status_code", "_name_": "status_code", "_required_": true}, "status_detail": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the pool status. `null` if not available.", "title": "status_detail", "_name_": "status_detail", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the pool in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": true}, "allocated": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space currently allocated in the pool in bytes. `null` if not available.", "title": "allocated", "_name_": "allocated", "_required_": true}, "free": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of free space available in the pool in bytes. `null` if not available.", "title": "free", "_name_": "free", "_required_": true}, "freeing": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space being freed (in bytes) by ongoing operations. `null` if not available.", "title": "freeing", "_name_": "freeing", "_required_": true}, "dedup_table_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the deduplication table in bytes. `null` if deduplication is not enabled.", "title": "dedup_table_size", "_name_": "dedup_table_size", "_required_": true}, "dedup_table_quota": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Quota limit for the deduplication table. `null` if no quota is set.", "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": true}, "fragmentation": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Percentage of pool fragmentation as a string. `null` if not available.", "title": "fragmentation", "_name_": "fragmentation", "_required_": true}, "size_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of the pool size. `null` if not available.", "title": "size_str", "_name_": "size_str", "_required_": true}, "allocated_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of allocated space. `null` if not available.", "title": "allocated_str", "_name_": "allocated_str", "_required_": true}, "free_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of free space. `null` if not available.", "title": "free_str", "_name_": "free_str", "_required_": true}, "freeing_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of space being freed. `null` if not available.", "title": "freeing_str", "_name_": "freeing_str", "_required_": true}, "autotrim": {"description": "Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.", "examples": [{"parsed": "off", "rawvalue": "off", "source": "DEFAULT", "value": "off"}], "title": "autotrim", "type": "object", "_name_": "autotrim", "_required_": true}, "topology": {"anyOf": [{"additionalProperties": false, "properties": {"data": {"description": "Array of data vdev configurations in the pool.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "log": {"description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{}], "title": "log", "type": "array", "_name_": "log", "_required_": true}, "cache": {"description": "Array of L2ARC cache vdev configurations.", "items": [{}], "title": "cache", "type": "array", "_name_": "cache", "_required_": true}, "spare": {"description": "Array of spare disk configurations.", "items": [{}], "title": "spare", "type": "array", "_name_": "spare", "_required_": true}, "special": {"description": "Array of special vdev configurations for metadata.", "items": [{}], "title": "special", "type": "array", "_name_": "special", "_required_": true}, "dedup": {"description": "Array of deduplication table vdev configurations.", "items": [{}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": true}}, "required": ["data", "log", "cache", "spare", "special", "dedup"], "title": "PoolTopology", "type": "object", "_attrs_order_": ["data", "log", "cache", "spare", "special", "dedup"]}, {"type": "null"}], "description": "Physical topology and structure of the pool including vdevs. `null` if not available.", "title": "topology", "_name_": "topology", "_required_": true}}, "required": ["name", "status", "path", "scan", "expand", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"], "title": "result", "type": "object", "description": "Current state and configuration of the boot pool.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "status", "path", "scan", "expand", "is_upgraded", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"]}]}, "boot.replace": {"description": "Replace device `label` on boot pool with `dev`.", "cli_description": "Replace device `label` on boot pool with `dev`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DISK_WRITE"], "accepts": [{"description": "Label of the disk in the boot pool to replace.", "title": "label", "type": "string", "_name_": "label", "_required_": true}, {"description": "Device name or path of the replacement disk.", "title": "dev", "type": "string", "_name_": "dev", "_required_": true}], "returns": [{"description": "Returns `null` when the disk replacement is successfully initiated.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "boot.scrub": {"description": "Scrub on boot pool.", "cli_description": "Scrub on boot pool", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["BOOT_ENV_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` when the boot pool scrub is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "boot.set_scrub_interval": {"description": "Set Automatic Scrub Interval value in days.", "cli_description": "Set Automatic Scrub Interval value in days", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["BOOT_ENV_WRITE"], "accepts": [{"description": "Scrub interval in days (must be a positive integer).", "exclusiveMinimum": 0, "title": "interval", "type": "integer", "_name_": "interval", "_required_": true}], "returns": [{"description": "The updated scrub interval in days.", "exclusiveMinimum": 0, "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "boot.environment.activate": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["BOOT_ENV_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"id": {"description": "Name of the boot environment to activate for next boot.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}}, "required": ["id"], "title": "boot_environment_activate", "type": "object", "description": "BootEnvironmentActivateArgs parameters.", "_name_": "boot_environment_activate", "_required_": true, "_attrs_order_": ["id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "The name of the boot environment referenced by the boot environment tool.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "dataset": {"description": "The name of the zfs dataset that represents the boot environment.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "active": {"description": "This is the currently running boot environment.", "title": "active", "type": "boolean", "_name_": "active", "_required_": true}, "activated": {"description": "Use this boot environment on next boot.", "title": "activated", "type": "boolean", "_name_": "activated", "_required_": true}, "created": {"description": "The date when the boot environment was created.", "format": "date-time", "title": "created", "type": "string", "_name_": "created", "_required_": true}, "used_bytes": {"description": "The total amount of bytes used by the boot environment.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": true}, "used": {"description": "The boot environment's used space in human readable format.", "minLength": 1, "title": "used", "type": "string", "_name_": "used", "_required_": true}, "keep": {"description": "When set to false, this makes the boot environment subject to automatic deletion if the TrueNAS updater needs space for an update. Otherwise, the updater will not delete this boot environment if it is set to true.", "title": "keep", "type": "boolean", "_name_": "keep", "_required_": true}, "can_activate": {"description": "The given boot environment may be activated.", "title": "can_activate", "type": "boolean", "_name_": "can_activate", "_required_": true}}, "required": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"], "title": "result", "type": "object", "description": "The activated boot environment configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"]}]}, "boot.environment.clone": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["BOOT_ENV_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"id": {"description": "Name of the existing boot environment to clone from.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "target": {"description": "Name for the new cloned boot environment.", "minLength": 1, "title": "target", "type": "string", "_name_": "target", "_required_": true}}, "required": ["id", "target"], "title": "boot_environment_clone", "type": "object", "description": "BootEnvironmentCloneArgs parameters.", "_name_": "boot_environment_clone", "_required_": true, "_attrs_order_": ["id", "target"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "The name of the boot environment referenced by the boot environment tool.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "dataset": {"description": "The name of the zfs dataset that represents the boot environment.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "active": {"description": "This is the currently running boot environment.", "title": "active", "type": "boolean", "_name_": "active", "_required_": true}, "activated": {"description": "Use this boot environment on next boot.", "title": "activated", "type": "boolean", "_name_": "activated", "_required_": true}, "created": {"description": "The date when the boot environment was created.", "format": "date-time", "title": "created", "type": "string", "_name_": "created", "_required_": true}, "used_bytes": {"description": "The total amount of bytes used by the boot environment.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": true}, "used": {"description": "The boot environment's used space in human readable format.", "minLength": 1, "title": "used", "type": "string", "_name_": "used", "_required_": true}, "keep": {"description": "When set to false, this makes the boot environment subject to automatic deletion if the TrueNAS updater needs space for an update. Otherwise, the updater will not delete this boot environment if it is set to true.", "title": "keep", "type": "boolean", "_name_": "keep", "_required_": true}, "can_activate": {"description": "The given boot environment may be activated.", "title": "can_activate", "type": "boolean", "_name_": "can_activate", "_required_": true}}, "required": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"], "title": "result", "type": "object", "description": "The newly created cloned boot environment.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"]}]}, "boot.environment.destroy": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["BOOT_ENV_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"id": {"description": "Name of the boot environment to destroy.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}}, "required": ["id"], "title": "boot_environment_destroy", "type": "object", "description": "BootEnvironmentDestroyArgs parameters.", "_name_": "boot_environment_destroy", "_required_": true, "_attrs_order_": ["id"]}], "returns": [{"description": "Returns `null` when the boot environment is successfully destroyed.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "boot.environment.keep": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["BOOT_ENV_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"id": {"description": "Name of the boot environment to modify.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "value": {"description": "Whether to protect this boot environment from automatic deletion.", "title": "value", "type": "boolean", "_name_": "value", "_required_": true}}, "required": ["id", "value"], "title": "boot_environment_destroy", "type": "object", "description": "BootEnvironmentKeepArgs parameters.", "_name_": "boot_environment_destroy", "_required_": true, "_attrs_order_": ["id", "value"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "The name of the boot environment referenced by the boot environment tool.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "dataset": {"description": "The name of the zfs dataset that represents the boot environment.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "active": {"description": "This is the currently running boot environment.", "title": "active", "type": "boolean", "_name_": "active", "_required_": true}, "activated": {"description": "Use this boot environment on next boot.", "title": "activated", "type": "boolean", "_name_": "activated", "_required_": true}, "created": {"description": "The date when the boot environment was created.", "format": "date-time", "title": "created", "type": "string", "_name_": "created", "_required_": true}, "used_bytes": {"description": "The total amount of bytes used by the boot environment.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": true}, "used": {"description": "The boot environment's used space in human readable format.", "minLength": 1, "title": "used", "type": "string", "_name_": "used", "_required_": true}, "keep": {"description": "When set to false, this makes the boot environment subject to automatic deletion if the TrueNAS updater needs space for an update. Otherwise, the updater will not delete this boot environment if it is set to true.", "title": "keep", "type": "boolean", "_name_": "keep", "_required_": true}, "can_activate": {"description": "The given boot environment may be activated.", "title": "can_activate", "type": "boolean", "_name_": "can_activate", "_required_": true}}, "required": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"], "title": "result", "type": "object", "description": "The updated boot environment with modified keep setting.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"]}]}, "boot.environment.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["BOOT_ENV_READ", "BOOT_ENV_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "The name of the boot environment referenced by the boot environment tool.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "dataset": {"description": "The name of the zfs dataset that represents the boot environment.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "active": {"description": "This is the currently running boot environment.", "title": "active", "type": "boolean", "_name_": "active", "_required_": false}, "activated": {"description": "Use this boot environment on next boot.", "title": "activated", "type": "boolean", "_name_": "activated", "_required_": false}, "created": {"description": "The date when the boot environment was created.", "format": "date-time", "title": "created", "type": "string", "_name_": "created", "_required_": false}, "used_bytes": {"description": "The total amount of bytes used by the boot environment.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": false}, "used": {"description": "The boot environment's used space in human readable format.", "minLength": 1, "title": "used", "type": "string", "_name_": "used", "_required_": false}, "keep": {"description": "When set to false, this makes the boot environment subject to automatic deletion if the TrueNAS updater needs space for an update. Otherwise, the updater will not delete this boot environment if it is set to true.", "title": "keep", "type": "boolean", "_name_": "keep", "_required_": false}, "can_activate": {"description": "The given boot environment may be activated.", "title": "can_activate", "type": "boolean", "_name_": "can_activate", "_required_": false}}, "title": "BootEnvironmentQueryResultItem", "type": "object", "_attrs_order_": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "The name of the boot environment referenced by the boot environment tool.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "dataset": {"description": "The name of the zfs dataset that represents the boot environment.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "active": {"description": "This is the currently running boot environment.", "title": "active", "type": "boolean", "_name_": "active", "_required_": false}, "activated": {"description": "Use this boot environment on next boot.", "title": "activated", "type": "boolean", "_name_": "activated", "_required_": false}, "created": {"description": "The date when the boot environment was created.", "format": "date-time", "title": "created", "type": "string", "_name_": "created", "_required_": false}, "used_bytes": {"description": "The total amount of bytes used by the boot environment.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": false}, "used": {"description": "The boot environment's used space in human readable format.", "minLength": 1, "title": "used", "type": "string", "_name_": "used", "_required_": false}, "keep": {"description": "When set to false, this makes the boot environment subject to automatic deletion if the TrueNAS updater needs space for an update. Otherwise, the updater will not delete this boot environment if it is set to true.", "title": "keep", "type": "boolean", "_name_": "keep", "_required_": false}, "can_activate": {"description": "The given boot environment may be activated.", "title": "can_activate", "type": "boolean", "_name_": "can_activate", "_required_": false}}, "title": "BootEnvironmentQueryResultItem", "type": "object", "_attrs_order_": ["id", "dataset", "active", "activated", "created", "used_bytes", "used", "keep", "can_activate"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "catalog.apps": {"description": "Retrieve apps details for `label` catalog.\n\n`options.cache` is a boolean which when set will try to get apps details for `label` catalog from cache\nif available.\n\n`options.cache_only` is a boolean which when set will force usage of cache only for retrieving catalog\ninformation. If the content for the catalog in question is not cached, no content would be returned. If\n`options.cache` is unset, this attribute has no effect.\n\n`options.retrieve_all_trains` is a boolean value which when set will retrieve information for all the trains\npresent in the catalog ( it is set by default ).\n\n`options.trains` is a list of train name(s) which will allow selective filtering to retrieve only information\nof desired trains in a catalog. If `options.retrieve_all_trains` is set, it has precedence over `options.train`.", "cli_description": "Retrieve apps details for `label` catalog", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"cache": {"default": true, "description": "Whether to use cached catalog data if available.", "title": "cache", "type": "boolean", "_name_": "cache", "_required_": false}, "cache_only": {"default": false, "description": "Whether to only return cached data without fetching updates.", "title": "cache_only", "type": "boolean", "_name_": "cache_only", "_required_": false}, "retrieve_all_trains": {"default": true, "description": "Whether to retrieve apps from all available trains.", "title": "retrieve_all_trains", "type": "boolean", "_name_": "retrieve_all_trains", "_required_": false}, "trains": {"description": "Specific train names to retrieve apps from (empty array means all trains).", "items": [{"minLength": 1, "type": "string"}], "title": "trains", "type": "array", "_name_": "trains", "_required_": false}}, "title": "catalog_apps_options", "type": "object", "description": "CatalogAppsArgs parameters.", "_name_": "catalog_apps_options", "_required_": true, "_attrs_order_": ["cache", "cache_only", "retrieve_all_trains", "trains"]}], "returns": [{"additionalProperties": {"additionalProperties": {"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": true}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": true}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": true}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": true}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": true}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": true}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": true}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": true}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "maintainers": {"description": "List of app maintainers.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the app maintainer.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "email": {"description": "Email address of the app maintainer.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Website URL of the app maintainer or `null`.", "title": "url", "_name_": "url", "_required_": true}}, "required": ["name", "email", "url"], "title": "Maintainer", "type": "object", "_attrs_order_": ["name", "email", "url"]}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": true}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": true}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": true}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": true}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "URL of the app icon.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["app_readme", "categories", "description", "healthy", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources"], "title": "CatalogAppInfo", "type": "object", "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url"]}, "title": "CatalogTrainInfo", "type": "object"}, "description": "Object mapping train names to their app information.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "catalog.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the catalog.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "label": {"description": "Catalog identifier. Must start with alphanumeric, then allow alphanumeric, periods, and hyphens.", "minLength": 1, "pattern": "^\\w+[\\w.-]*$", "title": "label", "type": "string", "_name_": "label", "_required_": true}, "preferred_trains": {"description": "Array of preferred train names for this catalog.", "items": [{"minLength": 1, "type": "string"}], "title": "preferred_trains", "type": "array", "_name_": "preferred_trains", "_required_": true}, "location": {"description": "Git repository URL or local path to the catalog.", "minLength": 1, "title": "location", "type": "string", "_name_": "location", "_required_": true}}, "required": ["id", "label", "preferred_trains", "location"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "label", "preferred_trains", "location"]}]}, "catalog.get_app_details": {"description": "Retrieve information of `app_name` `app_version_details.catalog` catalog app.", "cli_description": "Retrieve information of `app_name` `app_version_details", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Name of the app to get details for.", "minLength": 1, "title": "app_name", "type": "string", "_name_": "app_name", "_required_": true}, {"additionalProperties": false, "properties": {"train": {"description": "Train name where the app version is located.", "minLength": 1, "title": "train", "type": "string", "_name_": "train", "_required_": true}}, "required": ["train"], "title": "app_version_details", "type": "object", "description": "Version and train information for the specific app.", "_name_": "app_version_details", "_required_": true, "_attrs_order_": ["train"]}], "returns": [{"additionalProperties": true, "properties": {"app_readme": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "HTML content of the app README.", "title": "app_readme", "_name_": "app_readme", "_required_": true}, "categories": {"description": "List of categories for the app.", "items": [{"type": "string"}], "title": "categories", "type": "array", "_name_": "categories", "_required_": true}, "description": {"description": "Short description of the app.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "healthy": {"description": "Health status of the app.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "healthy_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Error if app is not healthy.", "title": "healthy_error", "_name_": "healthy_error", "_required_": false}, "home": {"description": "Homepage URL of the app.", "title": "home", "type": "string", "_name_": "home", "_required_": true}, "location": {"description": "Local path to the app's location.", "title": "location", "type": "string", "_name_": "location", "_required_": true}, "latest_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version.", "title": "latest_version", "_name_": "latest_version", "_required_": true}, "latest_app_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Latest available app version in repository.", "title": "latest_app_version", "_name_": "latest_app_version", "_required_": true}, "latest_human_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable version of the app.", "title": "latest_human_version", "_name_": "latest_human_version", "_required_": true}, "last_update": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Timestamp of the last update in ISO format.", "title": "last_update", "_name_": "last_update", "_required_": true}, "name": {"description": "Name of the app.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "recommended": {"description": "Indicates if the app is recommended.", "title": "recommended", "type": "boolean", "_name_": "recommended", "_required_": true}, "title": {"description": "Title of the app.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "maintainers": {"description": "List of app maintainers.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the app maintainer.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "email": {"description": "Email address of the app maintainer.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Website URL of the app maintainer or `null`.", "title": "url", "_name_": "url", "_required_": true}}, "required": ["name", "email", "url"], "title": "Maintainer", "type": "object", "_attrs_order_": ["name", "email", "url"]}], "title": "maintainers", "type": "array", "_name_": "maintainers", "_required_": true}, "tags": {"description": "Tags associated with the app.", "items": [{"type": "string"}], "title": "tags", "type": "array", "_name_": "tags", "_required_": true}, "screenshots": {"description": "List of screenshot URLs.", "items": [{"type": "string"}], "title": "screenshots", "type": "array", "_name_": "screenshots", "_required_": true}, "sources": {"description": "List of source URLs.", "items": [{"type": "string"}], "title": "sources", "type": "array", "_name_": "sources", "_required_": true}, "icon_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "URL of the app icon.", "title": "icon_url", "_name_": "icon_url", "_required_": false}}, "required": ["app_readme", "categories", "description", "healthy", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources"], "title": "result", "type": "object", "description": "Detailed information about the requested app.", "_name_": "result", "_required_": true, "_attrs_order_": ["app_readme", "categories", "description", "healthy", "healthy_error", "home", "location", "latest_version", "latest_app_version", "latest_human_version", "last_update", "name", "recommended", "title", "maintainers", "tags", "screenshots", "sources", "icon_url"]}]}, "catalog.sync": {"description": "Sync truenas catalog to retrieve latest changes from upstream.", "cli_description": "Sync truenas catalog to retrieve latest changes from upstream", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["APPS_WRITE", "CATALOG_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` when the catalog sync is successfully completed.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "catalog.trains": {"description": "Retrieve available trains.", "cli_description": "Retrieve available trains", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_READ", "APPS_WRITE", "CATALOG_READ", "CATALOG_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available train names in the catalog.", "items": [{"minLength": 1, "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "catalog.update": {"description": "Update catalog preferences.", "cli_description": "Update catalog preferences", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["APPS_WRITE", "CATALOG_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"preferred_trains": {"description": "Updated array of preferred train names for the catalog.", "items": [{"minLength": 1, "type": "string"}], "title": "preferred_trains", "type": "array", "_name_": "preferred_trains", "_required_": false}}, "title": "catalog_update", "type": "object", "description": "CatalogUpdateArgs parameters.", "_name_": "catalog_update", "_required_": true, "_attrs_order_": ["preferred_trains"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the catalog.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "label": {"description": "Catalog identifier. Must start with alphanumeric, then allow alphanumeric, periods, and hyphens.", "minLength": 1, "pattern": "^\\w+[\\w.-]*$", "title": "label", "type": "string", "_name_": "label", "_required_": true}, "preferred_trains": {"description": "Array of preferred train names for this catalog.", "items": [{"minLength": 1, "type": "string"}], "title": "preferred_trains", "type": "array", "_name_": "preferred_trains", "_required_": true}, "location": {"description": "Git repository URL or local path to the catalog.", "minLength": 1, "title": "location", "type": "string", "_name_": "location", "_required_": true}}, "required": ["id", "label", "preferred_trains", "location"], "title": "result", "type": "object", "description": "The updated catalog configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "label", "preferred_trains", "location"]}]}, "certificate.acme_server_choices": {"description": "Dictionary of popular ACME Servers with their directory URI\nendpoints which we display automatically in the UI", "cli_description": "Dictionary of popular ACME Servers with their directory URI endpoints which we display automatically in the UI", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CERTIFICATE_READ", "CERTIFICATE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping ACME server identifiers to their directory URLs.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "certificate.country_choices": {"description": "Returns country choices for creating a certificate/csr.", "cli_description": "Returns country choices for creating a certificate/csr", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CERTIFICATE_READ", "CERTIFICATE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping country codes to country names for certificate creation.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "certificate.create": {"description": "Create a new Certificate\n\nCertificates are classified under following types and the necessary keywords to be passed\nfor `create_type` attribute to create the respective type of certificate\n\n1) Imported Certificate - CERTIFICATE_CREATE_IMPORTED\n\n2) Certificate Signing Request - CERTIFICATE_CREATE_CSR\n\n3) Imported Certificate Signing Request - CERTIFICATE_CREATE_IMPORTED_CSR\n\n4) ACME Certificate - CERTIFICATE_CREATE_ACME\n\nBy default, created CSRs use RSA keys. If an Elliptic Curve Key is desired, it can be specified with the\n`key_type` attribute. If the `ec_curve` attribute is not specified for the Elliptic Curve Key, then default to\nusing \"SECP384R1\" curve.\n\nA type is selected by the Certificate Service based on `create_type`. The rest of the values in `data` are\nvalidated accordingly and finally a certificate is made based on the selected type.\n\n`cert_extensions` can be specified to set X509v3 extensions.\n\n", "cli_description": "Create a new Certificate", "examples": {"websocket": ["\n\n Create an ACME based certificate\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"certificate.create\",\n \"params\": [{\n \"tos\": true,\n \"csr_id\": 1,\n \"acme_directory_uri\": \"https://acme-staging-v02.api.letsencrypt.org/directory\",\n \"name\": \"acme_certificate\",\n \"dns_mapping\": {\n \"domain1.com\": \"1\"\n },\n \"create_type\": \"CERTIFICATE_CREATE_ACME\"\n }]\n }\n\n Create an Imported Certificate Signing Request\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"certificate.create\",\n \"params\": [{\n \"name\": \"csr\",\n \"CSR\": \"CSR string\",\n \"privatekey\": \"Private key string\",\n \"create_type\": \"CERTIFICATE_CREATE_IMPORTED_CSR\"\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CERTIFICATE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Certificate name.", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "create_type": {"description": "Type of certificate creation operation.", "enum": ["CERTIFICATE_CREATE_IMPORTED", "CERTIFICATE_CREATE_CSR", "CERTIFICATE_CREATE_IMPORTED_CSR", "CERTIFICATE_CREATE_ACME"], "title": "create_type", "type": "string", "_name_": "create_type", "_required_": true}, "add_to_trusted_store": {"default": false, "description": "Whether to add this certificate to the trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": false}, "certificate": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PEM-encoded certificate to import or `null`.", "title": "certificate", "_name_": "certificate", "_required_": false}, "privatekey": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PEM-encoded private key to import or `null`.", "title": "privatekey", "_name_": "privatekey", "_required_": false}, "CSR": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PEM-encoded certificate signing request to import or `null`.", "title": "CSR", "_name_": "CSR", "_required_": false}, "key_length": {"anyOf": [{"enum": [2048, 4096], "type": "integer"}, {"type": "null"}], "default": null, "description": "RSA key length in bits or `null`.", "title": "key_length", "_name_": "key_length", "_required_": false}, "key_type": {"default": "RSA", "description": "Type of cryptographic key to generate.", "enum": ["RSA", "EC"], "title": "key_type", "type": "string", "_name_": "key_type", "_required_": false}, "ec_curve": {"default": "SECP384R1", "description": "Elliptic curve to use for EC keys.", "enum": ["SECP256R1", "SECP384R1", "SECP521R1", "ed25519"], "title": "ec_curve", "type": "string", "_name_": "ec_curve", "_required_": false}, "passphrase": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Passphrase to protect the private key or `null`.", "title": "passphrase", "_name_": "passphrase", "_required_": false}, "city": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "City or locality name for certificate subject or `null`.", "title": "city", "_name_": "city", "_required_": false}, "common": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Common name for certificate subject or `null`.", "title": "common", "_name_": "common", "_required_": false}, "country": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Country name for certificate subject or `null`.", "title": "country", "_name_": "country", "_required_": false}, "email": {"anyOf": [{"format": "email", "type": "string"}, {"type": "null"}], "default": null, "description": "Email address for certificate subject or `null`.", "title": "email", "_name_": "email", "_required_": false}, "organization": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Organization name for certificate subject or `null`.", "title": "organization", "_name_": "organization", "_required_": false}, "organizational_unit": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Organizational unit for certificate subject or `null`.", "title": "organizational_unit", "_name_": "organizational_unit", "_required_": false}, "state": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "State or province name for certificate subject or `null`.", "title": "state", "_name_": "state", "_required_": false}, "digest_algorithm": {"default": "SHA256", "description": "Hash algorithm for certificate signing.", "enum": ["SHA224", "SHA256", "SHA384", "SHA512"], "title": "digest_algorithm", "type": "string", "_name_": "digest_algorithm", "_required_": false}, "san": {"description": "Subject alternative names for the certificate.", "items": [{"minLength": 1, "type": "string"}], "title": "san", "type": "array", "_name_": "san", "_required_": false}, "cert_extensions": {"additionalProperties": false, "properties": {"BasicConstraints": {"additionalProperties": false, "properties": {"ca": {"default": false, "description": "Whether this certificate is authorized to sign other certificates as a Certificate Authority (CA).", "title": "ca", "type": "boolean", "_name_": "ca", "_required_": false}, "enabled": {"default": false, "description": "Whether the Basic Constraints X.509 extension is present in the certificate.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "path_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of intermediate CA certificates that may follow this certificate in a valid certificate chain. `null` indicates no path length constraint.", "title": "path_length", "_name_": "path_length", "_required_": false}, "extension_critical": {"default": false, "description": "Whether the Basic Constraints extension is marked as critical. If `true`, applications that do not understand this extension must reject the certificate.", "title": "extension_critical", "type": "boolean", "_name_": "extension_critical", "_required_": false}}, "title": "BasicConstraints", "type": "object", "default": {"ca": false, "enabled": false, "path_length": null, "extension_critical": false}, "description": "Basic Constraints extension configuration for certificate authority capabilities.", "_name_": "BasicConstraints", "_required_": false, "_attrs_order_": ["ca", "enabled", "path_length", "extension_critical"]}, "ExtendedKeyUsage": {"additionalProperties": false, "properties": {"usages": {"description": "Array of Extended Key Usage (EKU) purposes that define what the certificate may be used for (e.g., 'SERVER_AUTH', 'CLIENT_AUTH', 'CODE_SIGNING').", "items": [{"enum": ["ANY_EXTENDED_KEY_USAGE", "CERTIFICATE_TRANSPARENCY", "CLIENT_AUTH", "CODE_SIGNING", "EMAIL_PROTECTION", "IPSEC_IKE", "KERBEROS_PKINIT_KDC", "OCSP_SIGNING", "SERVER_AUTH", "SMARTCARD_LOGON", "TIME_STAMPING"], "type": "string"}], "title": "usages", "type": "array", "_name_": "usages", "_required_": false}, "enabled": {"default": false, "description": "Whether the Extended Key Usage X.509 extension is present in the certificate.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "extension_critical": {"default": false, "description": "Whether the Extended Key Usage extension is marked as critical. If `true`, applications that do not understand this extension must reject the certificate.", "title": "extension_critical", "type": "boolean", "_name_": "extension_critical", "_required_": false}}, "title": "ExtendedKeyUsage", "type": "object", "default": {"usages": [], "enabled": false, "extension_critical": false}, "description": "Extended Key Usage extension configuration specifying certificate purposes.", "_name_": "ExtendedKeyUsage", "_required_": false, "_attrs_order_": ["usages", "enabled", "extension_critical"]}, "KeyUsage": {"additionalProperties": false, "properties": {"enabled": {"default": false, "description": "Whether the Key Usage X.509 extension is present in the certificate.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "digital_signature": {"default": false, "description": "Whether the certificate may be used for digital signatures to verify identity or integrity.", "title": "digital_signature", "type": "boolean", "_name_": "digital_signature", "_required_": false}, "content_commitment": {"default": false, "description": "Whether the certificate may be used for non-repudiation (proving content commitment).", "title": "content_commitment", "type": "boolean", "_name_": "content_commitment", "_required_": false}, "key_encipherment": {"default": false, "description": "Whether the certificate's public key may be used for encrypting symmetric keys.", "title": "key_encipherment", "type": "boolean", "_name_": "key_encipherment", "_required_": false}, "data_encipherment": {"default": false, "description": "Whether the certificate's public key may be used for directly encrypting raw data.", "title": "data_encipherment", "type": "boolean", "_name_": "data_encipherment", "_required_": false}, "key_agreement": {"default": false, "description": "Whether the certificate's public key may be used for key agreement protocols (e.g., Diffie-Hellman).", "title": "key_agreement", "type": "boolean", "_name_": "key_agreement", "_required_": false}, "key_cert_sign": {"default": false, "description": "Whether the certificate may be used to sign other certificates (CA functionality).", "title": "key_cert_sign", "type": "boolean", "_name_": "key_cert_sign", "_required_": false}, "crl_sign": {"default": false, "description": "Whether the certificate may be used to sign Certificate Revocation Lists (CRLs).", "title": "crl_sign", "type": "boolean", "_name_": "crl_sign", "_required_": false}, "encipher_only": {"default": false, "description": "Whether the public key may only be used for encryption when `key_agreement` is also set.", "title": "encipher_only", "type": "boolean", "_name_": "encipher_only", "_required_": false}, "decipher_only": {"default": false, "description": "Whether the public key may only be used for decryption when `key_agreement` is also set.", "title": "decipher_only", "type": "boolean", "_name_": "decipher_only", "_required_": false}, "extension_critical": {"default": false, "description": "Whether the Key Usage extension is marked as critical. If `true`, applications that do not understand this extension must reject the certificate.", "title": "extension_critical", "type": "boolean", "_name_": "extension_critical", "_required_": false}}, "title": "KeyUsage", "type": "object", "default": {"enabled": false, "digital_signature": false, "content_commitment": false, "key_encipherment": false, "data_encipherment": false, "key_agreement": false, "key_cert_sign": false, "crl_sign": false, "encipher_only": false, "decipher_only": false, "extension_critical": false}, "description": "Key Usage extension configuration defining permitted cryptographic operations.", "_name_": "KeyUsage", "_required_": false, "_attrs_order_": ["enabled", "digital_signature", "content_commitment", "key_encipherment", "data_encipherment", "key_agreement", "key_cert_sign", "crl_sign", "encipher_only", "decipher_only", "extension_critical"]}}, "title": "cert_extensions", "type": "object", "description": "Certificate extensions configuration.", "_name_": "cert_extensions", "_required_": false, "_attrs_order_": ["BasicConstraints", "ExtendedKeyUsage", "KeyUsage"]}, "acme_directory_uri": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "ACME directory URI to be used for ACME certificate creation.", "title": "acme_directory_uri", "_name_": "acme_directory_uri", "_required_": false}, "csr_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "CSR to be used for ACME certificate creation.", "title": "csr_id", "_name_": "csr_id", "_required_": false}, "tos": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Set this when creating an ACME certificate to accept terms of service of the ACME service.", "title": "tos", "_name_": "tos", "_required_": false}, "dns_mapping": {"additionalProperties": {"type": "integer"}, "description": "A mapping of domain to ACME DNS Authenticator ID for each domain listed in SAN or common name of the CSR.", "title": "dns_mapping", "type": "object", "_name_": "dns_mapping", "_required_": false}, "renew_days": {"default": 10, "description": "Number of days before the certificate expiration date to attempt certificate renewal. If certificate renewal fails, renewal will be reattempted every day until expiration.", "maximum": 30, "minimum": 1, "title": "renew_days", "type": "integer", "_name_": "renew_days", "_required_": false}}, "required": ["name", "create_type"], "title": "certificate_create", "type": "object", "description": "CertificateCreateArgs parameters.", "_name_": "certificate_create", "_required_": true, "_attrs_order_": ["name", "create_type", "add_to_trusted_store", "certificate", "privatekey", "CSR", "key_length", "key_type", "ec_curve", "passphrase", "city", "common", "country", "email", "organization", "organizational_unit", "state", "digest_algorithm", "san", "cert_extensions", "acme_directory_uri", "csr_id", "tos", "dns_mapping", "renew_days"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this certificate entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "type": {"description": "Internal certificate type identifier used to determine certificate capabilities.", "title": "type", "type": "integer", "_name_": "type", "_required_": true}, "name": {"description": "Human-readable name for this certificate. Must be unique and contain only alphanumeric characters, dashes, and underscores.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "certificate": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded X.509 certificate data. `null` for certificate signing requests (CSR) that have not yet been signed.", "title": "certificate", "_name_": "certificate", "_required_": true}, "privatekey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded private key corresponding to the certificate. `null` if no private key is available or for imported certificates without keys.", "title": "privatekey", "_name_": "privatekey", "_required_": true}, "CSR": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded Certificate Signing Request (CSR) data. `null` for imported certificates or completed ACME certificates.", "title": "CSR", "_name_": "CSR", "_required_": true}, "acme_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ACME directory server URI used for automated certificate management. `null` for non-ACME certificates.", "title": "acme_uri", "_name_": "acme_uri", "_required_": true}, "domains_authenticators": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Mapping of domain names to ACME DNS authenticator IDs for domain validation. `null` for non-ACME certificates.", "title": "domains_authenticators", "_name_": "domains_authenticators", "_required_": true}, "renew_days": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of days before expiration to attempt automatic renewal. Only applicable for ACME certificates. `null` for non-renewable certificates.", "title": "renew_days", "_name_": "renew_days", "_required_": true}, "acme": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "ACME registration and account information used for certificate lifecycle management. `null` for non-ACME certificates.", "title": "acme", "_name_": "acme", "_required_": true}, "add_to_trusted_store": {"description": "Whether this certificate should be added to the system's trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": true}, "root_path": {"description": "Filesystem path where certificate-related files are stored.", "minLength": 1, "title": "root_path", "type": "string", "_name_": "root_path", "_required_": true}, "certificate_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate file (.crt). `null` if no certificate is available.", "title": "certificate_path", "_name_": "certificate_path", "_required_": true}, "privatekey_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the private key file (.key). `null` if no private key is available.", "title": "privatekey_path", "_name_": "privatekey_path", "_required_": true}, "csr_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate signing request file (.csr). `null` if no CSR is available.", "title": "csr_path", "_name_": "csr_path", "_required_": true}, "cert_type": {"description": "Human-readable certificate type, typically 'CERTIFICATE' for standard certificates.", "minLength": 1, "title": "cert_type", "type": "string", "_name_": "cert_type", "_required_": true}, "cert_type_existing": {"description": "Whether this is an existing certificate (imported or generated).", "title": "cert_type_existing", "type": "boolean", "_name_": "cert_type_existing", "_required_": true}, "cert_type_CSR": {"description": "Whether this entry represents a Certificate Signing Request (CSR) rather than a signed certificate.", "title": "cert_type_CSR", "type": "boolean", "_name_": "cert_type_CSR", "_required_": true}, "cert_type_CA": {"description": "Whether this certificate is a Certificate Authority (CA) certificate.", "title": "cert_type_CA", "type": "boolean", "_name_": "cert_type_CA", "_required_": true}, "chain_list": {"description": "Array of PEM-encoded certificates in the certificate chain, starting with the leaf certificate.", "items": [{"type": "string"}], "title": "chain_list", "type": "array", "_name_": "chain_list", "_required_": true}, "key_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the cryptographic key in bits. `null` if key information is unavailable.", "title": "key_length", "_name_": "key_length", "_required_": true}, "key_type": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Type of cryptographic key algorithm (e.g., 'RSA', 'EC', 'DSA'). `null` if key information is unavailable.", "title": "key_type", "_name_": "key_type", "_required_": true}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ISO 3166-1 alpha-2 country code from the certificate subject. `null` if not specified.", "title": "country", "_name_": "country", "_required_": true}, "state": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "State or province name from the certificate subject. `null` if not specified.", "title": "state", "_name_": "state", "_required_": true}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "City or locality name from the certificate subject. `null` if not specified.", "title": "city", "_name_": "city", "_required_": true}, "organization": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organization name from the certificate subject. `null` if not specified.", "title": "organization", "_name_": "organization", "_required_": true}, "organizational_unit": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organizational unit from the certificate subject. `null` if not specified.", "title": "organizational_unit", "_name_": "organizational_unit", "_required_": true}, "common": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Common name (CN) from the certificate subject. `null` if not specified.", "title": "common", "_name_": "common", "_required_": true}, "san": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Subject Alternative Names (SAN) from the certificate extension. `null` if no SAN extension is present.", "title": "san", "_name_": "san", "_required_": true}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Email address from the certificate subject. `null` if not specified.", "title": "email", "_name_": "email", "_required_": true}, "DN": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Distinguished Name (DN) of the certificate subject in RFC 2253 format. `null` if certificate parsing failed.", "title": "DN", "_name_": "DN", "_required_": true}, "subject_name_hash": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Hash of the certificate subject name. `null` if certificate parsing failed.", "title": "subject_name_hash", "_name_": "subject_name_hash", "_required_": true}, "extensions": {"description": "X.509 certificate extensions parsed into a dictionary structure.", "title": "extensions", "type": "object", "_name_": "extensions", "_required_": true}, "digest_algorithm": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cryptographic hash algorithm used for certificate signing (e.g., 'SHA256'). `null` if unavailable.", "title": "digest_algorithm", "_name_": "digest_algorithm", "_required_": true}, "lifetime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate validity period in seconds. `null` if certificate parsing failed.", "title": "lifetime", "_name_": "lifetime", "_required_": true}, "from": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity start date in ISO 8601 format. `null` if certificate parsing failed.", "title": "from", "_name_": "from", "_required_": true}, "until": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity end date in ISO 8601 format. `null` if certificate parsing failed.", "title": "until", "_name_": "until", "_required_": true}, "serial": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate serial number. `null` if certificate parsing failed.", "title": "serial", "_name_": "serial", "_required_": true}, "chain": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether this certificate has an associated certificate chain. `null` if unavailable.", "title": "chain", "_name_": "chain", "_required_": true}, "fingerprint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SHA-256 fingerprint of the certificate in hexadecimal format. `null` if certificate parsing failed.", "title": "fingerprint", "_name_": "fingerprint", "_required_": true}, "expired": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the certificate has expired. `null` if certificate parsing failed.", "title": "expired", "_name_": "expired", "_required_": true}, "parsed": {"description": "Whether the certificate data was successfully parsed and validated.", "title": "parsed", "type": "boolean", "_name_": "parsed", "_required_": true}}, "required": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"], "title": "result", "type": "object", "description": "The created certificate configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"]}]}, "certificate.delete": {"description": "Delete certificate of `id`.\n\nIf the certificate is an ACME based certificate, certificate service will try to\nrevoke the certificate by updating it's status with the ACME server, if it fails an exception is raised\nand the certificate is not deleted from the system. However, if `force` is set to True, certificate is deleted\nfrom the system even if some error occurred while revoking the certificate with the ACME Server\n\n", "cli_description": "Delete certificate of `id`", "examples": {"websocket": ["\n\n Delete certificate of `id`\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"certificate.delete\",\n \"params\": [\n 1,\n true\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CERTIFICATE_WRITE"], "accepts": [{"description": "ID of the certificate to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to force deletion even if certificate is in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}], "returns": [{"description": "Returns `true` when the certificate is successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "certificate.ec_curve_choices": {"description": "Dictionary of supported EC curves.", "cli_description": "Dictionary of supported EC curves", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CERTIFICATE_READ", "CERTIFICATE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping elliptic curve identifiers.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "certificate.extended_key_usage_choices": {"description": "Dictionary of names that can be used in the\nExtendedKeyUsage attribute of a certificate request.", "cli_description": "Dictionary of names that can be used in the ExtendedKeyUsage attribute of a certificate request", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CERTIFICATE_READ", "CERTIFICATE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping extended key usage OIDs.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "certificate.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CERTIFICATE_READ", "CERTIFICATE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this certificate entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "type": {"description": "Internal certificate type identifier used to determine certificate capabilities.", "title": "type", "type": "integer", "_name_": "type", "_required_": true}, "name": {"description": "Human-readable name for this certificate. Must be unique and contain only alphanumeric characters, dashes, and underscores.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "certificate": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded X.509 certificate data. `null` for certificate signing requests (CSR) that have not yet been signed.", "title": "certificate", "_name_": "certificate", "_required_": true}, "privatekey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded private key corresponding to the certificate. `null` if no private key is available or for imported certificates without keys.", "title": "privatekey", "_name_": "privatekey", "_required_": true}, "CSR": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded Certificate Signing Request (CSR) data. `null` for imported certificates or completed ACME certificates.", "title": "CSR", "_name_": "CSR", "_required_": true}, "acme_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ACME directory server URI used for automated certificate management. `null` for non-ACME certificates.", "title": "acme_uri", "_name_": "acme_uri", "_required_": true}, "domains_authenticators": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Mapping of domain names to ACME DNS authenticator IDs for domain validation. `null` for non-ACME certificates.", "title": "domains_authenticators", "_name_": "domains_authenticators", "_required_": true}, "renew_days": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of days before expiration to attempt automatic renewal. Only applicable for ACME certificates. `null` for non-renewable certificates.", "title": "renew_days", "_name_": "renew_days", "_required_": true}, "acme": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "ACME registration and account information used for certificate lifecycle management. `null` for non-ACME certificates.", "title": "acme", "_name_": "acme", "_required_": true}, "add_to_trusted_store": {"description": "Whether this certificate should be added to the system's trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": true}, "root_path": {"description": "Filesystem path where certificate-related files are stored.", "minLength": 1, "title": "root_path", "type": "string", "_name_": "root_path", "_required_": true}, "certificate_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate file (.crt). `null` if no certificate is available.", "title": "certificate_path", "_name_": "certificate_path", "_required_": true}, "privatekey_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the private key file (.key). `null` if no private key is available.", "title": "privatekey_path", "_name_": "privatekey_path", "_required_": true}, "csr_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate signing request file (.csr). `null` if no CSR is available.", "title": "csr_path", "_name_": "csr_path", "_required_": true}, "cert_type": {"description": "Human-readable certificate type, typically 'CERTIFICATE' for standard certificates.", "minLength": 1, "title": "cert_type", "type": "string", "_name_": "cert_type", "_required_": true}, "cert_type_existing": {"description": "Whether this is an existing certificate (imported or generated).", "title": "cert_type_existing", "type": "boolean", "_name_": "cert_type_existing", "_required_": true}, "cert_type_CSR": {"description": "Whether this entry represents a Certificate Signing Request (CSR) rather than a signed certificate.", "title": "cert_type_CSR", "type": "boolean", "_name_": "cert_type_CSR", "_required_": true}, "cert_type_CA": {"description": "Whether this certificate is a Certificate Authority (CA) certificate.", "title": "cert_type_CA", "type": "boolean", "_name_": "cert_type_CA", "_required_": true}, "chain_list": {"description": "Array of PEM-encoded certificates in the certificate chain, starting with the leaf certificate.", "items": [{"type": "string"}], "title": "chain_list", "type": "array", "_name_": "chain_list", "_required_": true}, "key_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the cryptographic key in bits. `null` if key information is unavailable.", "title": "key_length", "_name_": "key_length", "_required_": true}, "key_type": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Type of cryptographic key algorithm (e.g., 'RSA', 'EC', 'DSA'). `null` if key information is unavailable.", "title": "key_type", "_name_": "key_type", "_required_": true}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ISO 3166-1 alpha-2 country code from the certificate subject. `null` if not specified.", "title": "country", "_name_": "country", "_required_": true}, "state": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "State or province name from the certificate subject. `null` if not specified.", "title": "state", "_name_": "state", "_required_": true}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "City or locality name from the certificate subject. `null` if not specified.", "title": "city", "_name_": "city", "_required_": true}, "organization": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organization name from the certificate subject. `null` if not specified.", "title": "organization", "_name_": "organization", "_required_": true}, "organizational_unit": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organizational unit from the certificate subject. `null` if not specified.", "title": "organizational_unit", "_name_": "organizational_unit", "_required_": true}, "common": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Common name (CN) from the certificate subject. `null` if not specified.", "title": "common", "_name_": "common", "_required_": true}, "san": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Subject Alternative Names (SAN) from the certificate extension. `null` if no SAN extension is present.", "title": "san", "_name_": "san", "_required_": true}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Email address from the certificate subject. `null` if not specified.", "title": "email", "_name_": "email", "_required_": true}, "DN": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Distinguished Name (DN) of the certificate subject in RFC 2253 format. `null` if certificate parsing failed.", "title": "DN", "_name_": "DN", "_required_": true}, "subject_name_hash": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Hash of the certificate subject name. `null` if certificate parsing failed.", "title": "subject_name_hash", "_name_": "subject_name_hash", "_required_": true}, "extensions": {"description": "X.509 certificate extensions parsed into a dictionary structure.", "title": "extensions", "type": "object", "_name_": "extensions", "_required_": true}, "digest_algorithm": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cryptographic hash algorithm used for certificate signing (e.g., 'SHA256'). `null` if unavailable.", "title": "digest_algorithm", "_name_": "digest_algorithm", "_required_": true}, "lifetime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate validity period in seconds. `null` if certificate parsing failed.", "title": "lifetime", "_name_": "lifetime", "_required_": true}, "from": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity start date in ISO 8601 format. `null` if certificate parsing failed.", "title": "from", "_name_": "from", "_required_": true}, "until": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity end date in ISO 8601 format. `null` if certificate parsing failed.", "title": "until", "_name_": "until", "_required_": true}, "serial": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate serial number. `null` if certificate parsing failed.", "title": "serial", "_name_": "serial", "_required_": true}, "chain": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether this certificate has an associated certificate chain. `null` if unavailable.", "title": "chain", "_name_": "chain", "_required_": true}, "fingerprint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SHA-256 fingerprint of the certificate in hexadecimal format. `null` if certificate parsing failed.", "title": "fingerprint", "_name_": "fingerprint", "_required_": true}, "expired": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the certificate has expired. `null` if certificate parsing failed.", "title": "expired", "_name_": "expired", "_required_": true}, "parsed": {"description": "Whether the certificate data was successfully parsed and validated.", "title": "parsed", "type": "boolean", "_name_": "parsed", "_required_": true}}, "required": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"]}]}, "certificate.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CERTIFICATE_READ", "CERTIFICATE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this certificate entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "type": {"description": "Internal certificate type identifier used to determine certificate capabilities.", "title": "type", "type": "integer", "_name_": "type", "_required_": false}, "name": {"description": "Human-readable name for this certificate. Must be unique and contain only alphanumeric characters, dashes, and underscores.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "certificate": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded X.509 certificate data. `null` for certificate signing requests (CSR) that have not yet been signed.", "title": "certificate", "_name_": "certificate", "_required_": false}, "privatekey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded private key corresponding to the certificate. `null` if no private key is available or for imported certificates without keys.", "title": "privatekey", "_name_": "privatekey", "_required_": false}, "CSR": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded Certificate Signing Request (CSR) data. `null` for imported certificates or completed ACME certificates.", "title": "CSR", "_name_": "CSR", "_required_": false}, "acme_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ACME directory server URI used for automated certificate management. `null` for non-ACME certificates.", "title": "acme_uri", "_name_": "acme_uri", "_required_": false}, "domains_authenticators": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Mapping of domain names to ACME DNS authenticator IDs for domain validation. `null` for non-ACME certificates.", "title": "domains_authenticators", "_name_": "domains_authenticators", "_required_": false}, "renew_days": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of days before expiration to attempt automatic renewal. Only applicable for ACME certificates. `null` for non-renewable certificates.", "title": "renew_days", "_name_": "renew_days", "_required_": false}, "acme": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "ACME registration and account information used for certificate lifecycle management. `null` for non-ACME certificates.", "title": "acme", "_name_": "acme", "_required_": false}, "add_to_trusted_store": {"description": "Whether this certificate should be added to the system's trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": false}, "root_path": {"description": "Filesystem path where certificate-related files are stored.", "minLength": 1, "title": "root_path", "type": "string", "_name_": "root_path", "_required_": false}, "certificate_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate file (.crt). `null` if no certificate is available.", "title": "certificate_path", "_name_": "certificate_path", "_required_": false}, "privatekey_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the private key file (.key). `null` if no private key is available.", "title": "privatekey_path", "_name_": "privatekey_path", "_required_": false}, "csr_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate signing request file (.csr). `null` if no CSR is available.", "title": "csr_path", "_name_": "csr_path", "_required_": false}, "cert_type": {"description": "Human-readable certificate type, typically 'CERTIFICATE' for standard certificates.", "minLength": 1, "title": "cert_type", "type": "string", "_name_": "cert_type", "_required_": false}, "cert_type_existing": {"description": "Whether this is an existing certificate (imported or generated).", "title": "cert_type_existing", "type": "boolean", "_name_": "cert_type_existing", "_required_": false}, "cert_type_CSR": {"description": "Whether this entry represents a Certificate Signing Request (CSR) rather than a signed certificate.", "title": "cert_type_CSR", "type": "boolean", "_name_": "cert_type_CSR", "_required_": false}, "cert_type_CA": {"description": "Whether this certificate is a Certificate Authority (CA) certificate.", "title": "cert_type_CA", "type": "boolean", "_name_": "cert_type_CA", "_required_": false}, "chain_list": {"description": "Array of PEM-encoded certificates in the certificate chain, starting with the leaf certificate.", "items": [{"type": "string"}], "title": "chain_list", "type": "array", "_name_": "chain_list", "_required_": false}, "key_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the cryptographic key in bits. `null` if key information is unavailable.", "title": "key_length", "_name_": "key_length", "_required_": false}, "key_type": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Type of cryptographic key algorithm (e.g., 'RSA', 'EC', 'DSA'). `null` if key information is unavailable.", "title": "key_type", "_name_": "key_type", "_required_": false}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ISO 3166-1 alpha-2 country code from the certificate subject. `null` if not specified.", "title": "country", "_name_": "country", "_required_": false}, "state": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "State or province name from the certificate subject. `null` if not specified.", "title": "state", "_name_": "state", "_required_": false}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "City or locality name from the certificate subject. `null` if not specified.", "title": "city", "_name_": "city", "_required_": false}, "organization": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organization name from the certificate subject. `null` if not specified.", "title": "organization", "_name_": "organization", "_required_": false}, "organizational_unit": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organizational unit from the certificate subject. `null` if not specified.", "title": "organizational_unit", "_name_": "organizational_unit", "_required_": false}, "common": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Common name (CN) from the certificate subject. `null` if not specified.", "title": "common", "_name_": "common", "_required_": false}, "san": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Subject Alternative Names (SAN) from the certificate extension. `null` if no SAN extension is present.", "title": "san", "_name_": "san", "_required_": false}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Email address from the certificate subject. `null` if not specified.", "title": "email", "_name_": "email", "_required_": false}, "DN": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Distinguished Name (DN) of the certificate subject in RFC 2253 format. `null` if certificate parsing failed.", "title": "DN", "_name_": "DN", "_required_": false}, "subject_name_hash": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Hash of the certificate subject name. `null` if certificate parsing failed.", "title": "subject_name_hash", "_name_": "subject_name_hash", "_required_": false}, "extensions": {"description": "X.509 certificate extensions parsed into a dictionary structure.", "title": "extensions", "type": "object", "_name_": "extensions", "_required_": false}, "digest_algorithm": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cryptographic hash algorithm used for certificate signing (e.g., 'SHA256'). `null` if unavailable.", "title": "digest_algorithm", "_name_": "digest_algorithm", "_required_": false}, "lifetime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate validity period in seconds. `null` if certificate parsing failed.", "title": "lifetime", "_name_": "lifetime", "_required_": false}, "from": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity start date in ISO 8601 format. `null` if certificate parsing failed.", "title": "from", "_name_": "from", "_required_": false}, "until": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity end date in ISO 8601 format. `null` if certificate parsing failed.", "title": "until", "_name_": "until", "_required_": false}, "serial": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate serial number. `null` if certificate parsing failed.", "title": "serial", "_name_": "serial", "_required_": false}, "chain": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether this certificate has an associated certificate chain. `null` if unavailable.", "title": "chain", "_name_": "chain", "_required_": false}, "fingerprint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SHA-256 fingerprint of the certificate in hexadecimal format. `null` if certificate parsing failed.", "title": "fingerprint", "_name_": "fingerprint", "_required_": false}, "expired": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the certificate has expired. `null` if certificate parsing failed.", "title": "expired", "_name_": "expired", "_required_": false}, "parsed": {"description": "Whether the certificate data was successfully parsed and validated.", "title": "parsed", "type": "boolean", "_name_": "parsed", "_required_": false}}, "title": "CertificateQueryResultItem", "type": "object", "_attrs_order_": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this certificate entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "type": {"description": "Internal certificate type identifier used to determine certificate capabilities.", "title": "type", "type": "integer", "_name_": "type", "_required_": false}, "name": {"description": "Human-readable name for this certificate. Must be unique and contain only alphanumeric characters, dashes, and underscores.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "certificate": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded X.509 certificate data. `null` for certificate signing requests (CSR) that have not yet been signed.", "title": "certificate", "_name_": "certificate", "_required_": false}, "privatekey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded private key corresponding to the certificate. `null` if no private key is available or for imported certificates without keys.", "title": "privatekey", "_name_": "privatekey", "_required_": false}, "CSR": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded Certificate Signing Request (CSR) data. `null` for imported certificates or completed ACME certificates.", "title": "CSR", "_name_": "CSR", "_required_": false}, "acme_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ACME directory server URI used for automated certificate management. `null` for non-ACME certificates.", "title": "acme_uri", "_name_": "acme_uri", "_required_": false}, "domains_authenticators": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Mapping of domain names to ACME DNS authenticator IDs for domain validation. `null` for non-ACME certificates.", "title": "domains_authenticators", "_name_": "domains_authenticators", "_required_": false}, "renew_days": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of days before expiration to attempt automatic renewal. Only applicable for ACME certificates. `null` for non-renewable certificates.", "title": "renew_days", "_name_": "renew_days", "_required_": false}, "acme": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "ACME registration and account information used for certificate lifecycle management. `null` for non-ACME certificates.", "title": "acme", "_name_": "acme", "_required_": false}, "add_to_trusted_store": {"description": "Whether this certificate should be added to the system's trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": false}, "root_path": {"description": "Filesystem path where certificate-related files are stored.", "minLength": 1, "title": "root_path", "type": "string", "_name_": "root_path", "_required_": false}, "certificate_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate file (.crt). `null` if no certificate is available.", "title": "certificate_path", "_name_": "certificate_path", "_required_": false}, "privatekey_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the private key file (.key). `null` if no private key is available.", "title": "privatekey_path", "_name_": "privatekey_path", "_required_": false}, "csr_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate signing request file (.csr). `null` if no CSR is available.", "title": "csr_path", "_name_": "csr_path", "_required_": false}, "cert_type": {"description": "Human-readable certificate type, typically 'CERTIFICATE' for standard certificates.", "minLength": 1, "title": "cert_type", "type": "string", "_name_": "cert_type", "_required_": false}, "cert_type_existing": {"description": "Whether this is an existing certificate (imported or generated).", "title": "cert_type_existing", "type": "boolean", "_name_": "cert_type_existing", "_required_": false}, "cert_type_CSR": {"description": "Whether this entry represents a Certificate Signing Request (CSR) rather than a signed certificate.", "title": "cert_type_CSR", "type": "boolean", "_name_": "cert_type_CSR", "_required_": false}, "cert_type_CA": {"description": "Whether this certificate is a Certificate Authority (CA) certificate.", "title": "cert_type_CA", "type": "boolean", "_name_": "cert_type_CA", "_required_": false}, "chain_list": {"description": "Array of PEM-encoded certificates in the certificate chain, starting with the leaf certificate.", "items": [{"type": "string"}], "title": "chain_list", "type": "array", "_name_": "chain_list", "_required_": false}, "key_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the cryptographic key in bits. `null` if key information is unavailable.", "title": "key_length", "_name_": "key_length", "_required_": false}, "key_type": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Type of cryptographic key algorithm (e.g., 'RSA', 'EC', 'DSA'). `null` if key information is unavailable.", "title": "key_type", "_name_": "key_type", "_required_": false}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ISO 3166-1 alpha-2 country code from the certificate subject. `null` if not specified.", "title": "country", "_name_": "country", "_required_": false}, "state": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "State or province name from the certificate subject. `null` if not specified.", "title": "state", "_name_": "state", "_required_": false}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "City or locality name from the certificate subject. `null` if not specified.", "title": "city", "_name_": "city", "_required_": false}, "organization": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organization name from the certificate subject. `null` if not specified.", "title": "organization", "_name_": "organization", "_required_": false}, "organizational_unit": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organizational unit from the certificate subject. `null` if not specified.", "title": "organizational_unit", "_name_": "organizational_unit", "_required_": false}, "common": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Common name (CN) from the certificate subject. `null` if not specified.", "title": "common", "_name_": "common", "_required_": false}, "san": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Subject Alternative Names (SAN) from the certificate extension. `null` if no SAN extension is present.", "title": "san", "_name_": "san", "_required_": false}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Email address from the certificate subject. `null` if not specified.", "title": "email", "_name_": "email", "_required_": false}, "DN": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Distinguished Name (DN) of the certificate subject in RFC 2253 format. `null` if certificate parsing failed.", "title": "DN", "_name_": "DN", "_required_": false}, "subject_name_hash": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Hash of the certificate subject name. `null` if certificate parsing failed.", "title": "subject_name_hash", "_name_": "subject_name_hash", "_required_": false}, "extensions": {"description": "X.509 certificate extensions parsed into a dictionary structure.", "title": "extensions", "type": "object", "_name_": "extensions", "_required_": false}, "digest_algorithm": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cryptographic hash algorithm used for certificate signing (e.g., 'SHA256'). `null` if unavailable.", "title": "digest_algorithm", "_name_": "digest_algorithm", "_required_": false}, "lifetime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate validity period in seconds. `null` if certificate parsing failed.", "title": "lifetime", "_name_": "lifetime", "_required_": false}, "from": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity start date in ISO 8601 format. `null` if certificate parsing failed.", "title": "from", "_name_": "from", "_required_": false}, "until": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity end date in ISO 8601 format. `null` if certificate parsing failed.", "title": "until", "_name_": "until", "_required_": false}, "serial": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate serial number. `null` if certificate parsing failed.", "title": "serial", "_name_": "serial", "_required_": false}, "chain": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether this certificate has an associated certificate chain. `null` if unavailable.", "title": "chain", "_name_": "chain", "_required_": false}, "fingerprint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SHA-256 fingerprint of the certificate in hexadecimal format. `null` if certificate parsing failed.", "title": "fingerprint", "_name_": "fingerprint", "_required_": false}, "expired": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the certificate has expired. `null` if certificate parsing failed.", "title": "expired", "_name_": "expired", "_required_": false}, "parsed": {"description": "Whether the certificate data was successfully parsed and validated.", "title": "parsed", "type": "boolean", "_name_": "parsed", "_required_": false}}, "title": "CertificateQueryResultItem", "type": "object", "_attrs_order_": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "certificate.update": {"description": "Update certificate of `id`\n\nOnly name attribute can be updated.\n\n", "cli_description": "Update certificate of `id`", "examples": {"websocket": ["\n\n Update a certificate of `id`\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"certificate.update\",\n \"params\": [\n 1,\n {\n \"name\": \"updated_name\"\n }\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CERTIFICATE_WRITE"], "accepts": [{"description": "ID of the certificate to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"renew_days": {"description": "Days before expiration to attempt renewal.", "maximum": 30, "minimum": 1, "title": "renew_days", "type": "integer", "_name_": "renew_days", "_required_": false}, "add_to_trusted_store": {"description": "Whether to add this certificate to the trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": false}, "name": {"description": "Certificate name.", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "certificate_update", "type": "object", "description": "Updated certificate configuration data.", "_name_": "certificate_update", "_required_": false, "_attrs_order_": ["renew_days", "add_to_trusted_store", "name"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this certificate entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "type": {"description": "Internal certificate type identifier used to determine certificate capabilities.", "title": "type", "type": "integer", "_name_": "type", "_required_": true}, "name": {"description": "Human-readable name for this certificate. Must be unique and contain only alphanumeric characters, dashes, and underscores.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "certificate": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded X.509 certificate data. `null` for certificate signing requests (CSR) that have not yet been signed.", "title": "certificate", "_name_": "certificate", "_required_": true}, "privatekey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded private key corresponding to the certificate. `null` if no private key is available or for imported certificates without keys.", "title": "privatekey", "_name_": "privatekey", "_required_": true}, "CSR": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PEM-encoded Certificate Signing Request (CSR) data. `null` for imported certificates or completed ACME certificates.", "title": "CSR", "_name_": "CSR", "_required_": true}, "acme_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ACME directory server URI used for automated certificate management. `null` for non-ACME certificates.", "title": "acme_uri", "_name_": "acme_uri", "_required_": true}, "domains_authenticators": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Mapping of domain names to ACME DNS authenticator IDs for domain validation. `null` for non-ACME certificates.", "title": "domains_authenticators", "_name_": "domains_authenticators", "_required_": true}, "renew_days": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of days before expiration to attempt automatic renewal. Only applicable for ACME certificates. `null` for non-renewable certificates.", "title": "renew_days", "_name_": "renew_days", "_required_": true}, "acme": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "ACME registration and account information used for certificate lifecycle management. `null` for non-ACME certificates.", "title": "acme", "_name_": "acme", "_required_": true}, "add_to_trusted_store": {"description": "Whether this certificate should be added to the system's trusted certificate store.", "title": "add_to_trusted_store", "type": "boolean", "_name_": "add_to_trusted_store", "_required_": true}, "root_path": {"description": "Filesystem path where certificate-related files are stored.", "minLength": 1, "title": "root_path", "type": "string", "_name_": "root_path", "_required_": true}, "certificate_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate file (.crt). `null` if no certificate is available.", "title": "certificate_path", "_name_": "certificate_path", "_required_": true}, "privatekey_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the private key file (.key). `null` if no private key is available.", "title": "privatekey_path", "_name_": "privatekey_path", "_required_": true}, "csr_path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Filesystem path to the certificate signing request file (.csr). `null` if no CSR is available.", "title": "csr_path", "_name_": "csr_path", "_required_": true}, "cert_type": {"description": "Human-readable certificate type, typically 'CERTIFICATE' for standard certificates.", "minLength": 1, "title": "cert_type", "type": "string", "_name_": "cert_type", "_required_": true}, "cert_type_existing": {"description": "Whether this is an existing certificate (imported or generated).", "title": "cert_type_existing", "type": "boolean", "_name_": "cert_type_existing", "_required_": true}, "cert_type_CSR": {"description": "Whether this entry represents a Certificate Signing Request (CSR) rather than a signed certificate.", "title": "cert_type_CSR", "type": "boolean", "_name_": "cert_type_CSR", "_required_": true}, "cert_type_CA": {"description": "Whether this certificate is a Certificate Authority (CA) certificate.", "title": "cert_type_CA", "type": "boolean", "_name_": "cert_type_CA", "_required_": true}, "chain_list": {"description": "Array of PEM-encoded certificates in the certificate chain, starting with the leaf certificate.", "items": [{"type": "string"}], "title": "chain_list", "type": "array", "_name_": "chain_list", "_required_": true}, "key_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the cryptographic key in bits. `null` if key information is unavailable.", "title": "key_length", "_name_": "key_length", "_required_": true}, "key_type": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Type of cryptographic key algorithm (e.g., 'RSA', 'EC', 'DSA'). `null` if key information is unavailable.", "title": "key_type", "_name_": "key_type", "_required_": true}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ISO 3166-1 alpha-2 country code from the certificate subject. `null` if not specified.", "title": "country", "_name_": "country", "_required_": true}, "state": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "State or province name from the certificate subject. `null` if not specified.", "title": "state", "_name_": "state", "_required_": true}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "City or locality name from the certificate subject. `null` if not specified.", "title": "city", "_name_": "city", "_required_": true}, "organization": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organization name from the certificate subject. `null` if not specified.", "title": "organization", "_name_": "organization", "_required_": true}, "organizational_unit": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Organizational unit from the certificate subject. `null` if not specified.", "title": "organizational_unit", "_name_": "organizational_unit", "_required_": true}, "common": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Common name (CN) from the certificate subject. `null` if not specified.", "title": "common", "_name_": "common", "_required_": true}, "san": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Subject Alternative Names (SAN) from the certificate extension. `null` if no SAN extension is present.", "title": "san", "_name_": "san", "_required_": true}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Email address from the certificate subject. `null` if not specified.", "title": "email", "_name_": "email", "_required_": true}, "DN": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Distinguished Name (DN) of the certificate subject in RFC 2253 format. `null` if certificate parsing failed.", "title": "DN", "_name_": "DN", "_required_": true}, "subject_name_hash": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Hash of the certificate subject name. `null` if certificate parsing failed.", "title": "subject_name_hash", "_name_": "subject_name_hash", "_required_": true}, "extensions": {"description": "X.509 certificate extensions parsed into a dictionary structure.", "title": "extensions", "type": "object", "_name_": "extensions", "_required_": true}, "digest_algorithm": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cryptographic hash algorithm used for certificate signing (e.g., 'SHA256'). `null` if unavailable.", "title": "digest_algorithm", "_name_": "digest_algorithm", "_required_": true}, "lifetime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate validity period in seconds. `null` if certificate parsing failed.", "title": "lifetime", "_name_": "lifetime", "_required_": true}, "from": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity start date in ISO 8601 format. `null` if certificate parsing failed.", "title": "from", "_name_": "from", "_required_": true}, "until": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Certificate validity end date in ISO 8601 format. `null` if certificate parsing failed.", "title": "until", "_name_": "until", "_required_": true}, "serial": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Certificate serial number. `null` if certificate parsing failed.", "title": "serial", "_name_": "serial", "_required_": true}, "chain": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether this certificate has an associated certificate chain. `null` if unavailable.", "title": "chain", "_name_": "chain", "_required_": true}, "fingerprint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SHA-256 fingerprint of the certificate in hexadecimal format. `null` if certificate parsing failed.", "title": "fingerprint", "_name_": "fingerprint", "_required_": true}, "expired": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the certificate has expired. `null` if certificate parsing failed.", "title": "expired", "_name_": "expired", "_required_": true}, "parsed": {"description": "Whether the certificate data was successfully parsed and validated.", "title": "parsed", "type": "boolean", "_name_": "parsed", "_required_": true}}, "required": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"], "title": "result", "type": "object", "description": "The updated certificate configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "type", "name", "certificate", "privatekey", "CSR", "acme_uri", "domains_authenticators", "renew_days", "acme", "add_to_trusted_store", "root_path", "certificate_path", "privatekey_path", "csr_path", "cert_type", "cert_type_existing", "cert_type_CSR", "cert_type_CA", "chain_list", "key_length", "key_type", "country", "state", "city", "organization", "organizational_unit", "common", "san", "email", "DN", "subject_name_hash", "extensions", "digest_algorithm", "lifetime", "from", "until", "serial", "chain", "fingerprint", "expired", "parsed"]}]}, "cloud_backup.abort": {"description": "Abort a running cloud backup task.", "cli_description": "Abort a running cloud backup task", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_WRITE"], "accepts": [{"description": "ID of the cloud backup task whose backup job to abort.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "The backup was successfully aborted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "cloud_backup.create": {"description": "Create a new cloud backup task", "cli_description": "Create a new cloud backup task", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": true}, "transfer_setting": {"default": "DEFAULT", "description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "absolute_paths": {"default": false, "description": "Preserve absolute paths in each backup (cannot be set when `snapshot=True`).", "title": "absolute_paths", "type": "boolean", "_name_": "absolute_paths", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "required": ["path", "credential REDACTED, "attributes", "password REDACTED, "keep_last"], "title": "cloud_backup", "type": "object", "description": "Configuration for the new cloud backup task.", "_name_": "cloud_backup", "_required_": true, "_attrs_order_": ["description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "password REDACTED, "keep_last", "transfer_setting", "absolute_paths", "cache_path", "rate_limit"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": true}, "transfer_setting": {"default": "DEFAULT", "description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "absolute_paths": {"default": false, "description": "Preserve absolute paths in each backup (cannot be set when `snapshot=True`).", "title": "absolute_paths", "type": "boolean", "_name_": "absolute_paths", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "password REDACTED, "keep_last"], "title": "result", "type": "object", "description": "The new cloud backup task.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "password REDACTED, "keep_last", "transfer_setting", "absolute_paths", "cache_path", "rate_limit"]}]}, "cloud_backup.delete": {"description": "Delete cloud backup entry `id`.", "cli_description": "Delete cloud backup entry `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_WRITE"], "accepts": [{"description": "ID of the cloud backup task to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Task successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "cloud_backup.delete_snapshot": {"description": "Delete snapshot `snapshot_id` created by the cloud backup job `id`.", "cli_description": "Delete snapshot `snapshot_id` created by the cloud backup job `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CLOUD_BACKUP_WRITE"], "accepts": [{"description": "The cloud backup task ID.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"description": "ID of the snapshot to delete.", "pattern": "^[^-]", "title": "snapshot_id", "type": "string", "_name_": "snapshot_id", "_required_": true}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cloud_backup.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_READ", "CLOUD_BACKUP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": true}, "transfer_setting": {"default": "DEFAULT", "description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "absolute_paths": {"default": false, "description": "Preserve absolute paths in each backup (cannot be set when `snapshot=True`).", "title": "absolute_paths", "type": "boolean", "_name_": "absolute_paths", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "password REDACTED, "keep_last"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "password REDACTED, "keep_last", "transfer_setting", "absolute_paths", "cache_path", "rate_limit"]}]}, "cloud_backup.list_snapshot_directory": {"description": "List files in the directory `path` of the `snapshot_id` created by the cloud backup job `id`.", "cli_description": "List files in the directory `path` of the `snapshot_id` created by the cloud backup job `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_READ", "CLOUD_BACKUP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The cloud backup task ID.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"description": "ID of the snapshot whose contents to list.", "pattern": "^[^-]", "title": "snapshot_id", "type": "string", "_name_": "snapshot_id", "_required_": true}, {"description": "Path within the snapshot to list the contents of.", "pattern": "^[^-]", "title": "path", "type": "string", "_name_": "path", "_required_": true}], "returns": [{"description": "All files and directories at the given snapshot path.", "items": [{"additionalProperties": true, "properties": {"name": {"description": "Name of the item.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "path": {"description": "Item's path in the snapshot.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"description": "Directory or file.", "enum": ["dir", "file"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the file in bytes.", "title": "size", "_name_": "size", "_required_": true}, "mtime": {"description": "Last modified time.", "format": "date-time", "title": "mtime", "type": "string", "_name_": "mtime", "_required_": true}}, "required": ["name", "path", "type", "size", "mtime"], "title": "CloudBackupSnapshotItem", "type": "object", "_attrs_order_": ["name", "path", "type", "size", "mtime"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloud_backup.list_snapshots": {"description": "List existing snapshots for the cloud backup job `id`.", "cli_description": "List existing snapshots for the cloud backup job `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_READ", "CLOUD_BACKUP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The cloud backup task ID.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "All retained backup snapshots.", "items": [{"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for this cloud backup snapshot.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "hostname": {"description": "Host that created the snapshot.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "time": {"description": "Time at which the snapshot was created.", "format": "date-time", "title": "time", "type": "string", "_name_": "time", "_required_": true}, "paths": {"description": "Paths that the snapshot includes.", "items": [{"type": "string"}], "title": "paths", "type": "array", "_name_": "paths", "_required_": true}}, "required": ["id", "hostname", "time", "paths"], "title": "CloudBackupSnapshot", "type": "object", "_attrs_order_": ["id", "hostname", "time", "paths"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloud_backup.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_READ", "CLOUD_BACKUP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "description": {"description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": false, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": false}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": false}, "transfer_setting": {"description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "absolute_paths": {"description": "Preserve absolute paths in each backup (cannot be set when `snapshot=True`).", "title": "absolute_paths", "type": "boolean", "_name_": "absolute_paths", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "title": "CloudBackupQueryResultItem", "type": "object", "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "password REDACTED, "keep_last", "transfer_setting", "absolute_paths", "cache_path", "rate_limit"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "description": {"description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}, "attributes": {"description": "Additional information for each backup, e.g. bucket name.", "title": "attributes", "_name_": "attributes", "_required_": false}, "schedule": {"description": "Cron schedule dictating when the task should run.", "title": "schedule", "_name_": "schedule", "_required_": false}, "pre_script": {"description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": false}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": false}, "transfer_setting": {"description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "absolute_paths": {"description": "Preserve absolute paths in each backup (cannot be set when `snapshot=True`).", "title": "absolute_paths", "type": "boolean", "_name_": "absolute_paths", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "title": "CloudBackupQueryResultItem", "type": "object", "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "password REDACTED, "keep_last", "transfer_setting", "absolute_paths", "cache_path", "rate_limit"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "cloud_backup.restore": {"description": "Restore files to the directory `destination_path` from the `snapshot_id` subfolder `subfolder`\ncreated by the cloud backup job `id`.", "cli_description": "Restore files to the directory `destination_path` from the `snapshot_id` subfolder `subfolder` created by the cloud backup job `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FILESYSTEM_DATA_WRITE", "FILESYSTEM_FULL_CONTROL"], "accepts": [{"description": "ID of the cloud backup task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"description": "ID of the snapshot to restore.", "pattern": "^[^-]", "title": "snapshot_id", "type": "string", "_name_": "snapshot_id", "_required_": true}, {"description": "Path within the snapshot to restore.", "title": "subfolder", "type": "string", "_name_": "subfolder", "_required_": true}, {"description": "Local path to restore to.", "title": "destination_path", "type": "string", "_name_": "destination_path", "_required_": true}, {"additionalProperties": false, "properties": {"exclude": {"default": [], "description": "Paths to exclude from a restore using `restic restore --exclude`.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "include": {"default": [], "description": "Paths to include in a restore using `restic restore --include`.", "items": [{"type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum download rate in KiB/s. Passed to `restic --limit-download`.\n\nIf provided, overrides the task's rate limit.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "title": "options", "type": "object", "default": {"exclude": [], "include": [], "rate_limit": null}, "description": "Additional restore options.", "_name_": "options", "_required_": false, "_attrs_order_": ["exclude", "include", "rate_limit"]}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cloud_backup.sync": {"description": "Run the cloud backup job `id`.", "cli_description": "Run the cloud backup job `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CLOUD_BACKUP_WRITE"], "accepts": [{"description": "The cloud backup task ID.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"dry_run": {"default": false, "description": "Simulate the backup without actually writing to the remote repository.", "title": "dry_run", "type": "boolean", "_name_": "dry_run", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum upload rate in KiB/s. Passed to `restic --limit-upload`.\n\nIf provided, overrides the task's rate limit.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "title": "options", "type": "object", "description": "Sync options.", "_name_": "options", "_required_": false, "_attrs_order_": ["dry_run", "rate_limit"]}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cloud_backup.transfer_setting_choices": {"description": "Return all possible choices for `cloud_backup.create.transfer_setting`.", "cli_description": "Return all possible choices for `cloud_backup", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_READ", "CLOUD_BACKUP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "All possible values for `cloud_backup.create.transfer_setting`.", "items": [{"enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloud_backup.update": {"description": "Update the cloud backup entry `id` with `data`.", "cli_description": "Update the cloud backup entry `id` with `data`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_BACKUP_WRITE"], "accepts": [{"description": "ID of the cloud backup task to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"description": {"description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": false}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": false}, "transfer_setting": {"description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration data for the cloud backup task.", "_name_": "data", "_required_": true, "_attrs_order_": ["description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "password REDACTED, "keep_last", "transfer_setting", "cache_path", "rate_limit"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "keep_last": {"description": "How many of the most recent backup snapshots to keep after each backup.", "exclusiveMinimum": 0, "title": "keep_last", "type": "integer", "_name_": "keep_last", "_required_": true}, "transfer_setting": {"default": "DEFAULT", "description": "* DEFAULT:\n * pack size given by `$RESTIC_PACK_SIZE` (default 16 MiB)\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* PERFORMANCE:\n * pack size = 29 MiB\n * read concurrency given by `$RESTIC_READ_CONCURRENCY` (default 2 files)\n\n* FAST_STORAGE:\n * pack size = 58 MiB\n * read concurrency = 100 files", "enum": ["DEFAULT", "PERFORMANCE", "FAST_STORAGE"], "title": "transfer_setting", "type": "string", "_name_": "transfer_setting", "_required_": false}, "absolute_paths": {"default": false, "description": "Preserve absolute paths in each backup (cannot be set when `snapshot=True`).", "title": "absolute_paths", "type": "boolean", "_name_": "absolute_paths", "_required_": false}, "cache_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Cache path. If not set, performance may degrade.", "title": "cache_path", "_name_": "cache_path", "_required_": false}, "rate_limit": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum upload/download rate in KiB/s. Passed to `restic --limit-upload` on `cloud_backup.sync` and `restic --limit-download` on `cloud_backup.restore`. `null` indicates no rate limit will be imposed.\n\nCan be overridden on a sync or restore call.", "title": "rate_limit", "_name_": "rate_limit", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "password REDACTED, "keep_last"], "title": "result", "type": "object", "description": "The updated cloud backup task.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "password REDACTED, "keep_last", "transfer_setting", "absolute_paths", "cache_path", "rate_limit"]}]}, "cloudsync.abort": {"description": "Aborts cloud sync task.", "cli_description": "Aborts cloud sync task", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud sync task to abort.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `true` if the sync operation was successfully aborted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "cloudsync.create": {"description": "Creates a new cloud_sync entry.", "cli_description": "Creates a new cloud_sync entry", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "encryption": {"default": false, "description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"default": false, "description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"default": false, "description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "required": ["path", "credential REDACTED, "attributes", "direction", "transfer_mode"], "title": "cloud_sync_create", "type": "object", "description": "Cloud sync task configuration data.", "_name_": "cloud_sync_create", "_required_": true, "_attrs_order_": ["description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "encryption": {"default": false, "description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"default": false, "description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"default": false, "description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "direction", "transfer_mode"], "title": "result", "type": "object", "description": "The created cloud sync task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}]}, "cloudsync.create_bucket": {"description": "Creates a new bucket `name` using ` credential REDACTED, "cli_description": "Creates a new bucket `name` using ` credential REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": true}, {"description": "Name for the new bucket.", "title": "name", "type": "string", "_name_": "name", "_required_": true}], "returns": [{"description": "Returns `null` when the bucket is successfully created.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cloudsync.delete": {"description": "Deletes cloud_sync entry `id`.", "cli_description": "Deletes cloud_sync entry `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud sync task to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the cloud sync task is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "cloudsync.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_READ", "CLOUD_SYNC_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "encryption": {"default": false, "description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"default": false, "description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"default": false, "description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "direction", "transfer_mode"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}]}, "cloudsync.list_buckets": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": true}], "returns": [{"description": "Array of bucket information objects.", "items": [{"type": "object"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloudsync.list_directory": {"description": "List contents of a remote bucket / directory.\n\nIf remote supports buckets, path is constructed by two keys \"bucket\"/\"folder\" in `attributes`.\nIf remote does not support buckets, path is constructed using \"folder\" key only in `attributes`.\n\"folder\" is directory name and \"bucket\" is bucket name for remote.\n\nPath examples:\n\nS3 Service\n`bucketname/directory/name`\n\nDropbox Service\n`directory/name`\n\n`credential REDACTED, "cli_description": "List contents of a remote bucket / directory", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": true}, "encryption": {"default": false, "description": "Whether files are encrypted in cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether filenames are encrypted in cloud storage.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Cloud provider-specific attributes for the listing operation.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "args": {"default": "", "description": "Additional arguments for the directory listing command.", "title": "args", "type": "string", "_name_": "args", "_required_": false}}, "required": ["credential REDACTED, "attributes"], "title": "cloud_sync_ls", "type": "object", "description": "CloudSyncListDirectoryArgs parameters.", "_name_": "cloud_sync_ls", "_required_": true, "_attrs_order_": ["credential REDACTED, "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "attributes", "args"]}], "returns": [{"description": "Array of file and directory information objects.", "items": [{"type": "object"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloudsync.onedrive_list_drives": {"description": "Lists all available drives and their types for given Microsoft OneDrive credential REDACTED, "cli_description": "Lists all available drives and their types for given Microsoft OneDrive credential REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["token REDACTED, "title": "onedrive_list_drives", "type": "object", "description": "CloudSyncOneDriveListDrivesArgs parameters.", "_name_": "onedrive_list_drives", "_required_": true, "_attrs_order_": ["client_id", "client_secret REDACTED, "token REDACTED}], "returns": [{"description": "Array of available OneDrive drives.", "items": [{"additionalProperties": false, "properties": {"drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}, "drive_type": {"description": "Type of OneDrive.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "name": {"description": "Display name of the OneDrive.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"description": "Description of the OneDrive.", "title": "description", "type": "string", "_name_": "description", "_required_": true}}, "required": ["drive_id", "drive_type", "name", "description"], "title": "CloudSyncOneDriveListDrivesDrive", "type": "object", "_attrs_order_": ["drive_id", "drive_type", "name", "description"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloudsync.providers": {"description": "Returns a list of dictionaries of supported providers for Cloud Sync Tasks.", "cli_description": "Returns a list of dictionaries of supported providers for Cloud Sync Tasks", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_READ", "CLOUD_SYNC_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available cloud sync providers and their configurations.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Internal name identifier for the cloud provider.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "title": {"description": "Human-readable title for the cloud provider.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "credential REDACTED}, {"type": "null"}], "description": "OAuth setup URL for the provider or `null` if not OAuth-based.", "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": true}, "buckets": {"description": "Set to `true` if provider supports buckets.", "title": "buckets", "type": "boolean", "_name_": "buckets", "_required_": true}, "bucket_title": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Title for bucket concept in this provider or `null` if not applicable.", "title": "bucket_title", "_name_": "bucket_title", "_required_": true}, "task_schema": {"description": "JSON schema for task attributes.", "items": [{"additionalProperties": false, "properties": {"property": {"description": "Name of the schema property for task configuration.", "title": "property", "type": "string", "_name_": "property", "_required_": true}}, "required": ["property"], "title": "CloudSyncProviderTaskSchemaItem", "type": "object", "_attrs_order_": ["property"]}], "title": "task_schema", "type": "array", "_name_": "task_schema", "_required_": true}}, "required": ["name", "title", "credential REDACTED, "buckets", "bucket_title", "task_schema"], "title": "CloudSyncProvider", "type": "object", "_attrs_order_": ["name", "title", "credential REDACTED, "buckets", "bucket_title", "task_schema"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "cloudsync.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_READ", "CLOUD_SYNC_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "description": {"description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": false, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": false}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": false}, "encryption": {"description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "title": "CloudSyncQueryResultItem", "type": "object", "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "description": {"description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "credential REDACTED, "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}, "attributes": {"description": "Additional information for each backup, e.g. bucket name.", "title": "attributes", "_name_": "attributes", "_required_": false}, "schedule": {"description": "Cron schedule dictating when the task should run.", "title": "schedule", "_name_": "schedule", "_required_": false}, "pre_script": {"description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": false}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": false}, "encryption": {"description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "title": "CloudSyncQueryResultItem", "type": "object", "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "cloudsync.restore": {"description": "Create the opposite of cloud sync task `id` (PULL if it was PUSH and vice versa).", "cli_description": "Create the opposite of cloud sync task `id` (PULL if it was PUSH and vice versa)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud sync task to restore from.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"description": {"default": "", "description": "Description for the restore operation.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "transfer_mode": {"description": "Transfer mode for the restore operation.", "enum": ["SYNC", "COPY"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "path": {"description": "Local path where files will be restored.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["transfer_mode", "path"], "title": "opts", "type": "object", "description": "Restore operation configuration options.", "_name_": "opts", "_required_": true, "_attrs_order_": ["description", "transfer_mode", "path"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "encryption": {"default": false, "description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"default": false, "description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"default": false, "description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "direction", "transfer_mode"], "title": "result", "type": "object", "description": "The created restore task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}]}, "cloudsync.sync": {"description": "Run the cloud_sync job `id`, syncing the local data to remote.", "cli_description": "Run the cloud_sync job `id`, syncing the local data to remote", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud sync task to run.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"dry_run": {"default": false, "description": "Whether to perform a dry run without making actual changes.", "title": "dry_run", "type": "boolean", "_name_": "dry_run", "_required_": false}}, "title": "cloud_sync_sync_options", "type": "object", "description": "Options for the sync operation.", "_name_": "cloud_sync_sync_options", "_required_": false, "_attrs_order_": ["dry_run"]}], "returns": [{"description": "Returns `null` when the sync operation is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cloudsync.sync_onetime": {"description": "Run cloud sync task without creating it.", "cli_description": "Run cloud sync task without creating it", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "encryption": {"default": false, "description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"default": false, "description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"default": false, "description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "required": ["path", "credential REDACTED, "attributes", "direction", "transfer_mode"], "title": "cloud_sync_sync_onetime", "type": "object", "description": "Cloud sync task configuration for one-time execution.", "_name_": "cloud_sync_sync_onetime", "_required_": true, "_attrs_order_": ["description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}, {"additionalProperties": false, "properties": {"dry_run": {"default": false, "description": "Whether to perform a dry run without making actual changes.", "title": "dry_run", "type": "boolean", "_name_": "dry_run", "_required_": false}}, "title": "cloud_sync_sync_onetime_options", "type": "object", "description": "Options for the one-time sync operation.", "_name_": "cloud_sync_sync_onetime_options", "_required_": false, "_attrs_order_": ["dry_run"]}], "returns": [{"description": "Returns `null` when the one-time sync operation is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cloudsync.update": {"description": "Updates the cloud_sync entry `id` with `data`.", "cli_description": "Updates the cloud_sync entry `id` with `data`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud sync task to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"description": {"description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "credential REDACTED, "title": "credential REDACTED, "type": "integer", "_name_": "credential REDACTED, "_required_": false}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": false}, "encryption": {"description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "title": "cloud_sync_update", "type": "object", "description": "Updated cloud sync task configuration data.", "_name_": "cloud_sync_update", "_required_": true, "_attrs_order_": ["description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this cloud storage configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"default": "", "description": "The name of the task to display in the UI.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "path": {"description": "The local path to back up beginning with `/mnt` or `/dev/zvol`.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "credential REDACTED, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["id", "name", "provider"]}, "attributes": {"additionalProperties": false, "properties": {"bucket": {"description": "Name of the cloud storage bucket or container.", "minLength": 1, "title": "bucket", "type": "string", "_name_": "bucket", "_required_": false}, "folder": {"description": "Path within the cloud storage bucket to use as the root directory for operations.", "title": "folder", "type": "string", "_name_": "folder", "_required_": false}, "fast_list": {"description": "Valid only for some providers. Use fewer transactions in exchange for more RAM. This may also speed up or slow down your transfer. See https://rclone.org/docs/#fast-list for more details.", "title": "fast_list", "type": "boolean", "_name_": "fast_list", "_required_": false}, "bucket_policy_only": {"description": "Valid only for GOOGLE_CLOUD_STORAGE provider. Access checks should use bucket-level IAM policies. If you want to upload objects to a bucket with Bucket Policy Only set then you will need to set this.", "title": "bucket_policy_only", "type": "boolean", "_name_": "bucket_policy_only", "_required_": false}, "chunk_size": {"description": "Valid only for DROPBOX provider. Upload chunk size in MiB. Must fit in memory. Note that these chunks are buffered in memory and there might be a maximum of `--transfers` chunks in progress at once. Dropbox Business accounts can have monthly data transfer limits per team per month. By using larger chunk sizes you will decrease the number of data transfer calls used and you'll be able to transfer more data to your Dropbox Business account.", "title": "chunk_size", "type": "integer", "_name_": "chunk_size", "_required_": false}, "acknowledge_abuse": {"description": "Valid only for GOOGLE_DRIVER provider. Allow files which return cannotDownloadAbusiveFile to be downloaded. If downloading a file returns the error \"This file has been identified as malware or spam and cannot be downloaded\" with the error code \"cannotDownloadAbusiveFile\" then enable this flag to indicate you acknowledge the risks of downloading the file and TrueNAS will download it anyway.", "title": "acknowledge_abuse", "type": "boolean", "_name_": "acknowledge_abuse", "_required_": false}, "region": {"description": "Valid only for S3 provider. S3 Region.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "encryption": {"description": "Valid only for S3 provider. Server-Side Encryption.", "enum": [null, "AES256"], "title": "encryption", "_name_": "encryption", "_required_": false}, "storage_class": {"description": "Valid only for S3 provider. The storage class to use.", "enum": ["", "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "GLACIER_IR", "DEEP_ARCHIVE"], "title": "storage_class", "type": "string", "_name_": "storage_class", "_required_": false}}, "title": "attributes", "type": "object", "description": "Additional information for each backup, e.g. bucket name.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["bucket", "folder", "fast_list", "bucket_policy_only", "chunk_size", "acknowledge_abuse", "region", "encryption", "storage_class"]}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule dictating when the task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "pre_script": {"default": "", "description": "A Bash script to run immediately before every backup.", "title": "pre_script", "type": "string", "_name_": "pre_script", "_required_": false}, "post_script": {"default": "", "description": "A Bash script to run immediately after every backup if it succeeds.", "title": "post_script", "type": "string", "_name_": "post_script", "_required_": false}, "snapshot": {"default": false, "description": "Whether to create a temporary snapshot of the dataset before every backup.", "title": "snapshot", "type": "boolean", "_name_": "snapshot", "_required_": false}, "include": {"description": "Paths to pass to `restic backup --include`.", "items": [{"minLength": 1, "type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}, "exclude": {"description": "Paths to pass to `restic backup --exclude`.", "items": [{"minLength": 1, "type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "args": {"default": "", "description": "(Slated for removal).", "title": "args", "type": "string", "_name_": "args", "_required_": false}, "enabled": {"default": true, "description": "Can enable/disable the task.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information regarding the task's job state, e.g. progress.", "title": "job", "_name_": "job", "_required_": true}, "locked": {"description": "A locked task cannot run.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "bwlimit": {"description": "Schedule of bandwidth limits.", "items": [{"additionalProperties": false, "properties": {"time": {"description": "Time at which the bandwidth limit takes effect in 24-hour format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "time", "type": "string", "_name_": "time", "_required_": true}, "bandwidth": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Bandwidth limit in bytes per second (upload and download).", "title": "bandwidth", "_name_": "bandwidth", "_required_": true}}, "required": ["time", "bandwidth"], "title": "CloudSyncBwlimit", "type": "object", "_attrs_order_": ["time", "bandwidth"]}], "title": "bwlimit", "type": "array", "_name_": "bwlimit", "_required_": false}, "transfers": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of parallel file transfers. `null` for default.", "title": "transfers", "_name_": "transfers", "_required_": false}, "direction": {"description": "Direction of the cloud sync operation.\n\n* `PUSH`: Upload local files to cloud storage\n* `PULL`: Download files from cloud storage to local storage", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transfer_mode": {"description": "How files are transferred between local and cloud storage.\n\n* `SYNC`: Synchronize directories (add new, update changed, remove deleted)\n* `COPY`: Copy files without removing any existing files\n* `MOVE`: Move files (copy then delete from source)", "enum": ["SYNC", "COPY", "MOVE"], "title": "transfer_mode", "type": "string", "_name_": "transfer_mode", "_required_": true}, "encryption": {"default": false, "description": "Whether to encrypt files before uploading to cloud storage.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "filename_encryption": {"default": false, "description": "Whether to encrypt filenames in addition to file contents.", "title": "filename_encryption", "type": "boolean", "_name_": "filename_encryption", "_required_": false}, "encryption_password REDACTED, "description": "Password REDACTED, "title": "encryption_password REDACTED, "type": "string", "_name_": "encryption_password REDACTED, "_required_": false}, "encryption_salt": {"default": "", "description": "Salt value for encryption key derivation. Empty string if encryption is disabled.", "title": "encryption_salt", "type": "string", "_name_": "encryption_salt", "_required_": false}, "create_empty_src_dirs": {"default": false, "description": "Whether to create empty directories in the destination that exist in the source.", "title": "create_empty_src_dirs", "type": "boolean", "_name_": "create_empty_src_dirs", "_required_": false}, "follow_symlinks": {"default": false, "description": "Whether to follow symbolic links and sync the files they point to.", "title": "follow_symlinks", "type": "boolean", "_name_": "follow_symlinks", "_required_": false}}, "required": ["id", "path", "credential REDACTED, "attributes", "job", "locked", "direction", "transfer_mode"], "title": "result", "type": "object", "description": "The updated cloud sync task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "path", "credential REDACTED, "attributes", "schedule", "pre_script", "post_script", "snapshot", "include", "exclude", "args", "enabled", "job", "locked", "bwlimit", "transfers", "direction", "transfer_mode", "encryption", "filename_encryption", "encryption_password REDACTED, "encryption_salt", "create_empty_src_dirs", "follow_symlinks"]}]}, "cloudsync.credential REDACTED, "cli_description": "Create Cloud Sync Credential REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["name", "provider"], "title": "cloud_sync_credential REDACTED, "type": "object", "description": "Cloud credential REDACTED, "_name_": "cloud_sync_credential REDACTED, "_required_": true, "_attrs_order_": ["name", "provider"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "result", "type": "object", "description": "The created cloud credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "provider"]}]}, "cloudsync.credential REDACTED, "cli_description": "Delete Cloud Sync Credential REDACTED, "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `true` when the cloud credential REDACTED, "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "cloudsync.credential REDACTED, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_READ", "CLOUD_SYNC_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "provider"]}]}, "cloudsync.credential REDACTED, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_READ", "CLOUD_SYNC_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": false}}, "title": "CloudCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "provider"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], "title": "provider", "_name_": "provider", "_required_": false}}, "title": "CloudCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "provider"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "cloudsync.credential REDACTED, "cli_description": "Update Cloud Sync Credential REDACTED, "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "ID of the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": false}}, "title": "cloud_sync_credential REDACTED, "type": "object", "description": "Updated cloud credential REDACTED, "_name_": "cloud_sync_credential REDACTED, "_required_": true, "_attrs_order_": ["name", "provider"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the cloud credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the cloud credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "provider": {"description": "Cloud provider configuration including type and authentication details.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "provider", "_name_": "provider", "_required_": true}}, "required": ["id", "name", "provider"], "title": "result", "type": "object", "description": "The updated cloud credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "provider"]}]}, "cloudsync.credential REDACTED, "cli_description": "Verify if `attributes` provided for `provider` are authorized by the `provider`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["CLOUD_SYNC_WRITE"], "accepts": [{"description": "Cloud provider configuration to verify connectivity and authentication.", "discriminator": {"mapping": {"AZUREBLOB": "#/$defs/AzureBlobCredential REDACTED, "B2": "#/$defs/B2Credential REDACTED, "BOX": "#/$defs/BoxCredential REDACTED, "DROPBOX": "#/$defs/DropboxCredential REDACTED, "FTP": "#/$defs/FTPCredential REDACTED, "GOOGLE_CLOUD_STORAGE": "#/$defs/GoogleCloudStorageCredential REDACTED, "GOOGLE_DRIVE": "#/$defs/GoogleDriveCredential REDACTED, "GOOGLE_PHOTOS": "#/$defs/GooglePhotosCredential REDACTED, "HTTP": "#/$defs/HTTPCredential REDACTED, "HUBIC": "#/$defs/HubicCredential REDACTED, "MEGA": "#/$defs/MegaCredential REDACTED, "ONEDRIVE": "#/$defs/OneDriveCredential REDACTED, "OPENSTACK_SWIFT": "#/$defs/SwiftCredential REDACTED, "PCLOUD": "#/$defs/PCloudCredential REDACTED, "S3": "#/$defs/S3Credential REDACTED, "SFTP": "#/$defs/SFTPCredential REDACTED, "STORJ_IX": "#/$defs/StorjIxCredential REDACTED, "WEBDAV": "#/$defs/WebDavCredential REDACTED, "YANDEX": "#/$defs/YandexCredential REDACTED}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"const": "AZUREBLOB", "description": "Cloud provider type identifier for Microsoft Azure Blob storage.", "enum": ["AZUREBLOB"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Azure Blob Storage account name for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Azure Blob Storage access key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "Custom Azure Blob Storage endpoint URL. Empty string for default endpoints.", "title": "endpoint", "_name_": "endpoint", "_required_": false}}, "required": ["type", "account", "key"], "title": "AzureBlobCredential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key", "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "B2", "description": "Cloud provider type identifier for Backblaze B2 storage.", "enum": ["B2"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "account": {"description": "Backblaze B2 account ID for authentication.", "minLength": 1, "title": "account", "type": "string", "_name_": "account", "_required_": true}, "key": {"description": "Backblaze B2 application key for authentication.", "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}}, "required": ["type", "account", "key"], "title": "B2Credential REDACTED, "type": "object", "_attrs_order_": ["type", "account", "key"]}, {"additionalProperties": false, "properties": {"type": {"const": "BOX", "description": "Cloud provider type identifier for Box cloud storage.", "enum": ["BOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Box OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Box OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "BoxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "DROPBOX", "description": "Cloud provider type identifier for Dropbox storage.", "enum": ["DROPBOX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Dropbox OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Dropbox OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "DropboxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "FTP", "description": "Cloud provider type identifier for FTP.", "enum": ["FTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "FTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 21, "description": "FTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "FTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "FTP password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "host", "user", "pass"], "title": "FTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_CLOUD_STORAGE", "description": "Cloud provider type identifier for Google Cloud Storage.", "enum": ["GOOGLE_CLOUD_STORAGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service_account_credential REDACTED, "minLength": 1, "title": "service_account_credential REDACTED, "type": "string", "_name_": "service_account_credential REDACTED, "_required_": true}}, "required": ["type", "service_account_credential REDACTED, "title": "GoogleCloudStorageCredential REDACTED, "type": "object", "_attrs_order_": ["type", "service_account_credential REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_DRIVE", "description": "Cloud provider type identifier for Google Drive.", "enum": ["GOOGLE_DRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Drive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "team_drive": {"default": "", "description": "Google Drive team drive ID or empty string for personal drive.", "title": "team_drive", "type": "string", "_name_": "team_drive", "_required_": false}}, "required": ["type", "token REDACTED, "title": "GoogleDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "team_drive"]}, {"additionalProperties": false, "properties": {"type": {"const": "GOOGLE_PHOTOS", "description": "Cloud provider type identifier for Google Photos.", "enum": ["GOOGLE_PHOTOS"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for Google Photos API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "GooglePhotosCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "HTTP", "description": "Cloud provider type identifier for HTTP.", "enum": ["HTTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "HTTP URL for file access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}}, "required": ["type", "url"], "title": "HTTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url"]}, {"additionalProperties": false, "properties": {"type": {"const": "HUBIC", "description": "Cloud provider type identifier for Hubic.", "enum": ["HUBIC"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "HubicCredential REDACTED, "type": "object", "_attrs_order_": ["type", "token REDACTED}, {"additionalProperties": false, "properties": {"type": {"const": "MEGA", "description": "Cloud provider type identifier for MEGA.", "enum": ["MEGA"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "MEGA username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "MEGA password REDACTED, "minLength": 1, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "user", "pass"], "title": "MegaCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "ONEDRIVE", "description": "Cloud provider type identifier for OneDrive.", "enum": ["ONEDRIVE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for OneDrive API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "drive_type": {"description": "Type of OneDrive to access.", "enum": ["PERSONAL", "BUSINESS", "DOCUMENT_LIBRARY"], "title": "drive_type", "type": "string", "_name_": "drive_type", "_required_": true}, "drive_id": {"description": "OneDrive drive identifier.", "title": "drive_id", "type": "string", "_name_": "drive_id", "_required_": true}}, "required": ["type", "token REDACTED, "drive_type", "drive_id"], "title": "OneDriveCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "drive_type", "drive_id"]}, {"additionalProperties": false, "properties": {"type": {"const": "PCLOUD", "description": "Cloud provider type identifier for pCloud.", "enum": ["PCLOUD"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "OAuth client ID for pCloud API access.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "OAuth client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "hostname": {"default": "", "description": "pCloud hostname or empty string for default.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}}, "required": ["type", "token REDACTED, "title": "PCloudCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED, "hostname"]}, {"additionalProperties": false, "properties": {"type": {"const": "S3", "description": "Cloud provider type identifier for S3-compatible storage.", "enum": ["S3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "S3 access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "default": "", "description": "S3-compatible endpoint URL or empty string for AWS S3.", "title": "endpoint", "_name_": "endpoint", "_required_": false}, "region": {"default": "", "description": "S3 region or empty string for default.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "skip_region": {"default": false, "description": "Whether to skip region validation.", "title": "skip_region", "type": "boolean", "_name_": "skip_region", "_required_": false}, "signatures_v2": {"default": false, "description": "Whether to use AWS Signature Version 2.", "title": "signatures_v2", "type": "boolean", "_name_": "signatures_v2", "_required_": false}, "max_upload_parts": {"default": 10000, "description": "Maximum number of parts for multipart uploads.", "title": "max_upload_parts", "type": "integer", "_name_": "max_upload_parts", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "S3Credential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint", "region", "skip_region", "signatures_v2", "max_upload_parts"]}, {"additionalProperties": false, "properties": {"type": {"const": "SFTP", "description": "Cloud provider type identifier for SFTP.", "enum": ["SFTP"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "host": {"description": "SFTP server hostname or IP address.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SFTP server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "user": {"description": "SFTP username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SFTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "private_key": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "SSH private key ID for authentication or `null` for password REDACTED, "title": "private_key", "_name_": "private_key", "_required_": false}}, "required": ["type", "host", "user"], "title": "SFTPCredential REDACTED, "type": "object", "_attrs_order_": ["type", "host", "port", "user", "pass", "private_key"]}, {"additionalProperties": false, "properties": {"type": {"const": "STORJ_IX", "description": "Cloud provider type identifier for Storj decentralized storage.", "enum": ["STORJ_IX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "access_key_id": {"description": "Storj S3-compatible access key ID for authentication.", "minLength": 1, "title": "access_key_id", "type": "string", "_name_": "access_key_id", "_required_": true}, "secret REDACTED, "minLength": 1, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "endpoint": {"default": "https://gateway.storjshare.io/", "description": "Storj gateway endpoint URL for S3-compatible access.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "endpoint", "type": "string", "_name_": "endpoint", "_required_": false}}, "required": ["type", "access_key_id", "secret REDACTED, "title": "StorjIxCredential REDACTED, "type": "object", "_attrs_order_": ["type", "access_key_id", "secret REDACTED, "endpoint"]}, {"additionalProperties": false, "properties": {"type": {"const": "OPENSTACK_SWIFT", "description": "Cloud provider type identifier for OpenStack Swift storage.", "enum": ["OPENSTACK_SWIFT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user": {"description": "Swift username for authentication.", "minLength": 1, "title": "user", "type": "string", "_name_": "user", "_required_": true}, "key": {"description": "Swift password REDACTED, "minLength": 1, "title": "key", "type": "string", "_name_": "key", "_required_": true}, "auth": {"description": "Swift authentication URL endpoint.", "minLength": 1, "title": "auth", "type": "string", "_name_": "auth", "_required_": true}, "user_id": {"default": "", "description": "Swift user ID for authentication.", "title": "user_id", "type": "string", "_name_": "user_id", "_required_": false}, "domain": {"default": "", "description": "Swift domain name for authentication.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "tenant": {"default": "", "description": "Swift tenant name for multi-tenancy.", "title": "tenant", "type": "string", "_name_": "tenant", "_required_": false}, "tenant_id": {"default": "", "description": "Swift tenant ID for multi-tenancy.", "title": "tenant_id", "type": "string", "_name_": "tenant_id", "_required_": false}, "tenant_domain": {"default": "", "description": "Swift tenant domain name.", "title": "tenant_domain", "type": "string", "_name_": "tenant_domain", "_required_": false}, "region": {"default": "", "description": "Swift region name for geographic distribution.", "title": "region", "type": "string", "_name_": "region", "_required_": false}, "storage_url": {"default": "", "description": "Swift storage URL endpoint.", "title": "storage_url", "type": "string", "_name_": "storage_url", "_required_": false}, "auth_token REDACTED, "description": "Swift authentication token REDACTED, "title": "auth_token REDACTED, "type": "string", "_name_": "auth_token REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "application_credential REDACTED, "description": "Swift application credential REDACTED, "title": "application_credential REDACTED, "type": "string", "_name_": "application_credential REDACTED, "_required_": false}, "auth_version": {"anyOf": [{"enum": [0, 1, 2, 3], "type": "integer"}, {"type": "null"}], "description": "Swift authentication API version.\n\n* `0`: Legacy auth\n* `1`: TempAuth\n* `2`: Keystone v2.0\n* `3`: Keystone v3\n* `null`: Auto-detect", "title": "auth_version", "_name_": "auth_version", "_required_": true}, "endpoint_type": {"anyOf": [{"enum": ["public", "internal", "admin"], "type": "string"}, {"type": "null"}], "description": "Swift endpoint type to use.\n\n* `public`: Public endpoint (default)\n* `internal`: Internal network endpoint\n* `admin`: Administrative endpoint\n* `null`: Use default", "title": "endpoint_type", "_name_": "endpoint_type", "_required_": true}}, "required": ["type", "user", "key", "auth", "auth_version", "endpoint_type"], "title": "SwiftCredential REDACTED, "type": "object", "_attrs_order_": ["type", "user", "key", "auth", "user_id", "domain", "tenant", "tenant_id", "tenant_domain", "region", "storage_url", "auth_token REDACTED, "application_credential REDACTED, "application_credential REDACTED, "application_credential REDACTED, "auth_version", "endpoint_type"]}, {"additionalProperties": false, "properties": {"type": {"const": "WEBDAV", "description": "Cloud provider type identifier for WebDAV servers.", "enum": ["WEBDAV"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "url": {"description": "WebDAV server URL endpoint.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "vendor": {"description": "WebDAV server vendor type for compatibility optimizations.\n\n* `NEXTCLOUD`: Nextcloud server\n* `OWNCLOUD`: ownCloud server\n* `SHAREPOINT`: Microsoft SharePoint\n* `OTHER`: Generic WebDAV server", "enum": ["NEXTCLOUD", "OWNCLOUD", "SHAREPOINT", "OTHER"], "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "user": {"description": "WebDAV username for authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "pass": {"description": "WebDAV password REDACTED, "title": "pass", "type": "string", "_name_": "pass", "_required_": true}}, "required": ["type", "url", "vendor", "user", "pass"], "title": "WebDavCredential REDACTED, "type": "object", "_attrs_order_": ["type", "url", "vendor", "user", "pass"]}, {"additionalProperties": false, "properties": {"type": {"const": "YANDEX", "description": "Cloud provider type identifier for Yandex Disk storage.", "enum": ["YANDEX"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "client_id": {"default": "", "description": "Yandex OAuth application client ID.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": false}, "client_secret REDACTED, "description": "Yandex OAuth application client secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": false}, "token REDACTED, "minLength": 1, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}}, "required": ["type", "token REDACTED, "title": "YandexCredential REDACTED, "type": "object", "_attrs_order_": ["type", "client_id", "client_secret REDACTED, "token REDACTED}], "title": "cloud_sync_credential REDACTED, "_name_": "cloud_sync_credential REDACTED, "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"valid": {"description": "Whether the cloud credential REDACTED, "title": "valid", "type": "boolean", "_name_": "valid", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Error message if credential REDACTED, "title": "error", "_name_": "error", "_required_": false}, "excerpt": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Logs excerpt (or `null` if no error occurred).", "title": "excerpt", "_name_": "excerpt", "_required_": false}}, "required": ["valid"], "title": "result", "type": "object", "description": "Credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["valid", "error", "excerpt"]}]}, "config.reset": {"description": "Reset database to configuration defaults.\n\nIf `reboot` is true this job will reboot the system after its completed with a delay of 10\nseconds.", "cli_description": "Reset database to configuration defaults", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FULL_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"reboot": {"default": true, "description": "Whether to reboot the system after resetting configuration.", "title": "reboot", "type": "boolean", "_name_": "reboot", "_required_": false}}, "title": "options", "type": "object", "default": {"reboot": true}, "description": "Options controlling the configuration reset behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["reboot"]}], "returns": [{"description": "Returns `null` when the configuration reset is successfully initiated.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "config.save": {"description": "Create a tar file of security-sensitive information. These options select which information\nis included in the tar file:\n\n`secret REDACTED, include password REDACTED, include \"/root/.ssh/authorized_keys\" file for the root user.\n\nIf none of these options are set, the tar file is not generated and the database file is returned.", "cli_description": "Create a tar file of security-sensitive information", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["FULL_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"secret REDACTED, "description": "Whether to include the secret REDACTED, "title": "secret REDACTED, "type": "boolean", "_name_": "secret REDACTED, "_required_": false}, "pool_keys": {"default": false, "description": "Whether to include encryption keys for storage pools in the backup.", "title": "pool_keys", "type": "boolean", "_name_": "pool_keys", "_required_": false}, "root_authorized_keys": {"default": false, "description": "Whether to include root user's SSH authorized keys in the backup.", "title": "root_authorized_keys", "type": "boolean", "_name_": "root_authorized_keys", "_required_": false}}, "title": "options", "type": "object", "default": {"secret REDACTED, "pool_keys": false, "root_authorized_keys": false}, "description": "Options controlling what data to include in the configuration backup.", "_name_": "options", "_required_": false, "_attrs_order_": ["secret REDACTED, "pool_keys", "root_authorized_keys"]}], "returns": [{"description": "Returns `null` when the configuration backup is successfully created.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "config.upload": {"description": "Accepts a configuration file via job pipe.", "cli_description": "Accepts a configuration file via job pipe", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": true, "roles": ["FULL_ADMIN"], "accepts": [], "returns": [{"description": "Returns `null` when the configuration file is successfully uploaded.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cronjob.create": {"description": "Create a new cron job.\n\n`stderr` and `stdout` are boolean values which if `true`, represent that we would like to suppress\nstandard error / standard output respectively.\n\n", "cli_description": "Create a new cron job", "examples": {"websocket": ["\n\n Create a cron job which executes `touch /tmp/testfile` after every 5 minutes.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"cronjob.create\",\n \"params\": [{\n \"enabled\": true,\n \"schedule\": {\n \"minute\": \"5\",\n \"hour\": \"*\",\n \"dom\": \"*\",\n \"month\": \"*\",\n \"dow\": \"*\"\n },\n \"command\": \"touch /tmp/testfile\",\n \"description\": \"Test command\",\n \"user\": \"root\",\n \"stderr\": true,\n \"stdout\": true\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enabled": {"default": true, "description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"default": false, "description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"default": true, "description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "default": {"minute": "00", "hour": "*", "dom": "*", "month": "*", "dow": "*"}, "description": "Cron schedule configuration for when the job runs.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": true}, "description": {"default": "", "description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}}, "required": ["command", "user"], "title": "data", "type": "object", "description": "Cron job configuration data for the new job.", "_name_": "data", "_required_": true, "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user"]}], "returns": [{"additionalProperties": false, "properties": {"enabled": {"default": true, "description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"default": false, "description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"default": true, "description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "default": {"minute": "00", "hour": "*", "dom": "*", "month": "*", "dow": "*"}, "description": "Cron schedule configuration for when the job runs.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": true}, "description": {"default": "", "description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "id": {"description": "Unique identifier for the cron job.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["command", "user", "id"], "title": "result", "type": "object", "description": "The created cron job configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user", "id"]}]}, "cronjob.delete": {"description": "Delete cronjob of `id`.", "cli_description": "Delete cronjob of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"description": "ID of the cron job to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the cron job is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "cronjob.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_CRON_READ", "SYSTEM_CRON_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"enabled": {"default": true, "description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"default": false, "description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"default": true, "description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "default": {"minute": "00", "hour": "*", "dom": "*", "month": "*", "dow": "*"}, "description": "Cron schedule configuration for when the job runs.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": true}, "description": {"default": "", "description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "id": {"description": "Unique identifier for the cron job.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["command", "user", "id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user", "id"]}]}, "cronjob.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_CRON_READ", "SYSTEM_CRON_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule configuration for when the job runs.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": false}, "description": {"description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "id": {"description": "Unique identifier for the cron job.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}}, "title": "CronJobQueryResultItem", "type": "object", "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user", "id"]}], "type": "array"}, {"additionalProperties": false, "properties": {"enabled": {"description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"description": "Cron schedule configuration for when the job runs.", "title": "schedule", "_name_": "schedule", "_required_": false}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": false}, "description": {"description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "id": {"description": "Unique identifier for the cron job.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}}, "title": "CronJobQueryResultItem", "type": "object", "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user", "id"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "cronjob.run": {"description": "Job to run cronjob task of `id`.", "cli_description": "Job to run cronjob task of `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"description": "ID of the cron job to run immediately.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to skip execution if the cron job is disabled.", "title": "skip_disabled", "type": "boolean", "_name_": "skip_disabled", "_required_": false}], "returns": [{"description": "Returns `null` when the cron job is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "cronjob.update": {"description": "Update cronjob of `id`.", "cli_description": "Update cronjob of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"description": "ID of the cron job to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"enabled": {"description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule configuration for when the job runs.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": false}, "description": {"description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": false}}, "title": "data", "type": "object", "description": "Updated cron job configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user"]}], "returns": [{"additionalProperties": false, "properties": {"enabled": {"default": true, "description": "Whether the cron job is active and will be executed.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "stderr": {"default": false, "description": "Whether to IGNORE standard error (if `false`, it will be added to email).", "title": "stderr", "type": "boolean", "_name_": "stderr", "_required_": false}, "stdout": {"default": true, "description": "Whether to IGNORE standard output (if `false`, it will be added to email).", "title": "stdout", "type": "boolean", "_name_": "stdout", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "default": {"minute": "00", "hour": "*", "dom": "*", "month": "*", "dow": "*"}, "description": "Cron schedule configuration for when the job runs.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "command": {"description": "Shell command or script to execute.", "title": "command", "type": "string", "_name_": "command", "_required_": true}, "description": {"default": "", "description": "Human-readable description of what this cron job does.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "user": {"description": "System user account to run the command as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "id": {"description": "Unique identifier for the cron job.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["command", "user", "id"], "title": "result", "type": "object", "description": "The updated cron job configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["enabled", "stderr", "stdout", "schedule", "command", "description", "user", "id"]}]}, "device.get_info": {"description": "Get info for `type` device.", "cli_description": "Get info for `type` device", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"additionalProperties": false, "properties": {"type": {"const": "DISK", "description": "Get disk info.", "enum": ["DISK"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "get_partitions": {"default": false, "description": "If set, query partition information for the disks.\n**NOTE: This can be expensive on systems with a large number of disks present.**", "title": "get_partitions", "type": "boolean", "_name_": "get_partitions", "_required_": false}, "serials_only": {"default": false, "description": "If set, query _ONLY_ serial information for the disks (overrides `get_partitions`).", "title": "serials_only", "type": "boolean", "_name_": "serials_only", "_required_": false}}, "required": ["type"], "title": "DeviceGetInfoDisk", "type": "object", "_attrs_order_": ["type", "get_partitions", "serials_only"]}, {"additionalProperties": false, "properties": {"type": {"description": "Get info for either serial devices or GPUs.", "enum": ["SERIAL", "GPU"], "title": "type", "type": "string", "_name_": "type", "_required_": true}}, "required": ["type"], "title": "DeviceGetInfoOther", "type": "object", "_attrs_order_": ["type"]}], "description": "Device information query parameters specifying type and options.", "title": "data", "_name_": "data", "_required_": true}], "returns": [{"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"additionalProperties": {"type": "object"}, "type": "object"}, {"items": [{"additionalProperties": false, "properties": {"name": {"description": "Device name for the serial port.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "location": {"description": "Physical location or path of the serial device.", "title": "location", "type": "string", "_name_": "location", "_required_": true}, "drivername": {"description": "Name of the kernel driver handling this serial device.", "title": "drivername", "type": "string", "_name_": "drivername", "_required_": true}, "start": {"description": "Starting address or identifier for the serial device.", "title": "start", "type": "string", "_name_": "start", "_required_": true}, "size": {"description": "Size or capacity information for the serial device.", "title": "size", "type": "integer", "_name_": "size", "_required_": true}, "description": {"description": "Human-readable description of the serial device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}}, "required": ["name", "location", "drivername", "start", "size", "description"], "title": "SerialInfo", "type": "object", "_attrs_order_": ["name", "location", "drivername", "start", "size", "description"]}], "type": "array"}, {"items": [{"additionalProperties": true, "properties": {"addr": {"additionalProperties": false, "properties": {"pci_slot": {"description": "PCI slot identifier for the GPU.", "title": "pci_slot", "type": "string", "_name_": "pci_slot", "_required_": true}, "domain": {"description": "PCI domain number.", "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "bus": {"description": "PCI bus number.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "slot": {"description": "PCI slot number.", "title": "slot", "type": "string", "_name_": "slot", "_required_": true}}, "required": ["pci_slot", "domain", "bus", "slot"], "title": "addr", "type": "object", "description": "PCI address information for the GPU.", "_name_": "addr", "_required_": true, "_attrs_order_": ["pci_slot", "domain", "bus", "slot"]}, "description": {"description": "Human-readable description of the GPU.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "devices": {"description": "Array of PCI devices associated with this GPU.", "items": [{"additionalProperties": false, "properties": {"pci_id": {"description": "PCI device identifier.", "title": "pci_id", "type": "string", "_name_": "pci_id", "_required_": true}, "pci_slot": {"description": "PCI slot location.", "title": "pci_slot", "type": "string", "_name_": "pci_slot", "_required_": true}, "vm_pci_slot": {"description": "Virtual machine PCI slot mapping.", "title": "vm_pci_slot", "type": "string", "_name_": "vm_pci_slot", "_required_": true}}, "required": ["pci_id", "pci_slot", "vm_pci_slot"], "title": "GPUInfoDevice", "type": "object", "_attrs_order_": ["pci_id", "pci_slot", "vm_pci_slot"]}], "title": "devices", "type": "array", "_name_": "devices", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "GPU vendor name or `null` if unknown.", "title": "vendor", "_name_": "vendor", "_required_": true}, "available_to_host": {"description": "Whether the GPU is available for use by the host system.", "title": "available_to_host", "type": "boolean", "_name_": "available_to_host", "_required_": true}, "uses_system_critical_devices": {"description": "Whether the GPU uses devices critical for system operation.", "title": "uses_system_critical_devices", "type": "boolean", "_name_": "uses_system_critical_devices", "_required_": true}, "critical_reason": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reason why GPU is considered critical or `null` if not critical.", "title": "critical_reason", "_name_": "critical_reason", "_required_": true}}, "required": ["addr", "description", "devices", "vendor", "available_to_host", "uses_system_critical_devices", "critical_reason"], "title": "GPUInfo", "type": "object", "_attrs_order_": ["addr", "description", "devices", "vendor", "available_to_host", "uses_system_critical_devices", "critical_reason"]}], "type": "array"}], "description": "Return an object if `type=\"DISK\"` or an array otherwise.", "title": "result", "_name_": "result", "_required_": true}]}, "directoryservices.cache_refresh": {"description": "This method refreshes the directory services cache for users and groups that is\nused as a backing for `user.query` and `group.query` methods. The first cache fill in\nan Active Directory domain may take a significant amount of time to complete and\nso it is performed as within a job. The most likely situation in which a user may\ndesire to refresh the directory services cache is after new users or groups to a remote\ndirectory server with the intention to have said users or groups appear in the\nresults of the aforementioned account-related methods.\n\nA cache refresh is not required in order to use newly-added users and groups for in\npermissions and ACL related methods. Likewise, a cache refresh will not resolve issues\nwith users being unable to authenticate to shares.", "cli_description": "This method refreshes the directory services cache for users and groups that is used as a backing for `user", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "directoryservices.certificate_choices": {"description": "Available certificate choices for use with the `LDAP_MTLS` `credential REDACTED, "cli_description": "Available certificate choices for use with the `LDAP_MTLS` `credential REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"minLength": 1, "type": "string"}, "description": "IDs of certificates mapped to their names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "directoryservices.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the directory services configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "service_type": {"anyOf": [{"enum": ["ACTIVEDIRECTORY", "IPA", "LDAP"], "type": "string"}, {"type": "null"}], "description": "The pre-existing directory service type to which to bind TrueNAS. Select ACTIVEDIRECTORY to join an Active Directory domain. Select IPA to join a FreeIPA domain. Select LDAP to bind to one or more OpenLDAP-compatible servers. ", "title": "service_type", "_name_": "service_type", "_required_": true}, "credential REDACTED, "KERBEROS_USER": "#/$defs/CredKRBUser", "LDAP_ANONYMOUS": "#/$defs/CredLDAPAnonymous", "LDAP_MTLS": "#/$defs/CredLDAPMTLS", "LDAP_PLAIN": "#/$defs/CredLDAPPlain"}, "propertyName": "credential REDACTED}, "oneOf": [{"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_USER"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "username": {"description": "Username of the account to use to create a kerberos ticket for authentication to directory services. This account must exist on the domain controller. ", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["credential REDACTED, "username", "password REDACTED, "title": "CredKRBUser", "type": "object", "_attrs_order_": ["credential REDACTED, "username", "password REDACTED}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_PRINCIPAL"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "principal": {"description": "A kerberos principal is a unique identity to which Kerberos can assign tickets. The specified kerberos principal must have an entry within a keytab on the TrueNAS server. ", "minLength": 1, "title": "principal", "type": "string", "_name_": "principal", "_required_": true}}, "required": ["credential REDACTED, "principal"], "title": "CredKRBPrincipal", "type": "object", "_attrs_order_": ["credential REDACTED, "principal"]}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["LDAP_PLAIN"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "binddn": {"description": "Distinguished name to use for LDAP authentication.", "title": "binddn", "type": "string", "_name_": "binddn", "_required_": true}, "bindpw": {"description": "Password REDACTED, "minLength": 1, "title": "bindpw", "type": "string", "_name_": "bindpw", "_required_": true}}, "required": ["credential REDACTED, "binddn", "bindpw"], "title": "CredLDAPPlain", "type": "object", "_attrs_order_": ["credential REDACTED, "binddn", "bindpw"]}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Anonymous LDAP authentication with no credential REDACTED, "enum": ["LDAP_ANONYMOUS"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}}, "required": ["credential REDACTED, "title": "CredLDAPAnonymous", "type": "object", "_attrs_order_": ["credential REDACTED}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["LDAP_MTLS"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "client_certificate": {"description": "The client certificate name used for mutual TLS authentication to the remote LDAP server. ", "minLength": 1, "title": "client_certificate", "type": "string", "_name_": "client_certificate", "_required_": true}}, "required": ["credential REDACTED, "client_certificate"], "title": "CredLDAPMTLS", "type": "object", "_attrs_order_": ["credential REDACTED, "client_certificate"]}]}, {"type": "null"}], "description": "Credential REDACTED, GSSAPI binds replace plain LDAP binds. Use Kerberos or mutual TLS authentication when possible for better security.\n\nThe following credential REDACTED, `LDAP_ANONYMOUS`, `LDAP_MTLS`, `KERBEROS_USER`, and `KERBEROS_PRINCIPAL`. NOTE: prior configuration of kerberos realm is required in order to use kerberos credential REDACTED, "examples": [{"binddn": "uid=truenasserver,ou=Users,dc=ldap01,dc=internal", "bindpw": "Canary", "credential REDACTED}, {"credential REDACTED}, {"client_certificate": "ldap01_client_cert", "credential REDACTED}, {"credential REDACTED, "password REDACTED, "username": "truenas_user"}, {"credential REDACTED, "principal": "truenas@LDAP01.INTERNAL"}], "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": true}, "enable": {"description": "Enable the directory service.\n\nIf TrueNAS has never joined the specified domain (IPA or Active Directory), setting this to True causes TrueNAS to attempt to join the domain.\n\nNOTE: The domain join process for Active Directory and IPA will make changes to the domain such as creating a new computer account for the TrueNAS server and creating DNS records for TrueNAS. ", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": true}, "enable_account_cache": {"default": true, "description": "Enable backend caching for user and group lists. If enabled, then directory services users and groups will be presented as choices in the UI dropdowns and in API responses for user and group queries. This setting also controls whether users and groups appear in getent results. Disable this setting to reduce load on the directory server when necessary. ", "title": "enable_account_cache", "type": "boolean", "_name_": "enable_account_cache", "_required_": false}, "enable_dns_updates": {"default": true, "description": "Enable automatic DNS updates for the TrueNAS server in the domain via nsupdate and gssapi / TSIG. ", "title": "enable_dns_updates", "type": "boolean", "_name_": "enable_dns_updates", "_required_": false}, "timeout": {"default": 10, "description": "The timeout value for DNS queries that are performed as part of the join process and NETWORK_TIMEOUT for LDAP requests. ", "maximum": 60, "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "kerberos_realm": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of kerberos realm used for authentication to the directory service. If set to null, then Kerberos is not used for binding to the directory service. When joining an Active Directory or IPA domain for the first time, the realm is detected and configured automatically if not specified. ", "title": "kerberos_realm", "_name_": "kerberos_realm", "_required_": false}, "configuration": {"anyOf": [{"discriminator": {"mapping": {"ACTIVEDIRECTORY": "#/$defs/ActiveDirectoryConfig", "IPA": "#/$defs/IPAConfig", "LDAP": "#/$defs/LDAPConfig"}, "propertyName": "service_type"}, "oneOf": [{"additionalProperties": false, "properties": {"service_type": {"const": "ACTIVEDIRECTORY", "enum": ["ACTIVEDIRECTORY"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "hostname": {"description": "Hostname of TrueNAS server to register in Active Directory. Example: \"truenasnyc\". ", "minLength": 1, "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "The full DNS domain name of the Active Directory domain. This must not be a domain controller. Example: \"mydomain.internal\". ", "minLength": 1, "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "idmap": {"additionalProperties": false, "properties": {"builtin": {"additionalProperties": false, "description": "UID and GID range configuration for automatically generated accounts linked to well-known and BUILTIN accounts on Windows servers. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 90000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 100000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}}, "title": "builtin", "type": "object", "default": {"name": null, "range_low": 90000001, "range_high": 100000000}, "_name_": "builtin", "_required_": false, "_attrs_order_": ["name", "range_low", "range_high"]}, "idmap_domain": {"default": {"name": null, "range_low": 100000001, "range_high": 200000000, "idmap_backend": "RID", "sssd_compat": false}, "description": "This configuration defines how domain accounts joined to TrueNAS are mapped to Unix UIDs and GIDs on the TrueNAS server. Most TrueNAS deployments use the RID backend, which algorithmically assigns UIDs and GIDs based on the Active Directory account SID. Another common option is the AD backend, which reads predefined Active Directory LDAP schema attributes that assign explicit UID and GID numbers to accounts. ", "discriminator": {"mapping": {"AD": "#/$defs/AD_Idmap", "LDAP": "#/$defs/LDAP_Idmap", "RFC2307": "#/$defs/RFC2307_Idmap", "RID": "#/$defs/RID_Idmap"}, "propertyName": "idmap_backend"}, "oneOf": [{"additionalProperties": false, "description": "The AD backend reads UID and GID mappings from an Active Directory server that uses pre-existing RFC2307 / SFU schema extensions. The administrator must add mappings for users and groups in Active Directory before use.\n\nNOTE: these schema extensions are not present by default in Active Directory.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "AD", "description": "Idmap backend type identifier for Active Directory RFC2307 schema integration.", "enum": ["AD"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "schema_mode": {"description": "The schema mode the idmap backend uses to query Active Directory for user and group information. The RFC2307 schema applies to Windows Server 2003 R2 and newer. The Services for Unix (SFU) schema applies to versions before Windows Server 2003 R2. ", "enum": ["RFC2307", "SFU", "SFU20"], "title": "schema_mode", "type": "string", "_name_": "schema_mode", "_required_": true}, "unix_primary_group": {"default": false, "description": "Defines if the user's primary group is fetched from SFU attributes or the Active Directory primary group. If True, the TrueNAS server uses the `gidNumber` LDAP attribute. If False, it uses the `primaryGroupID` LDAP attribute.\n ", "title": "unix_primary_group", "type": "boolean", "_name_": "unix_primary_group", "_required_": false}, "unix_nss_info": {"default": false, "description": "If True, the login shell and home directory are retrieved from LDAP attributes. If False, or if the Active Directory LDAP entry lacks SFU attributes, the home directory defaults to `/var/empty`. ", "title": "unix_nss_info", "type": "boolean", "_name_": "unix_nss_info", "_required_": false}}, "required": ["idmap_backend", "schema_mode"], "title": "AD_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "schema_mode", "unix_primary_group", "unix_nss_info"]}, {"additionalProperties": false, "description": "The LDAP backend reads and writes UID / GID mapping tables from an external LDAP server. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "LDAP", "description": "Idmap backend type identifier for external LDAP server mapping.", "enum": ["LDAP"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_base_dn": {"description": "Directory base suffix to use for mapping UIDs and GIDs to SIDs. ", "title": "ldap_base_dn", "type": "string", "_name_": "ldap_base_dn", "_required_": true}, "ldap_user_dn": {"description": "Defines the user DN to be used for authentication to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "ldap_url": {"description": "LDAP server to use for the idmap entries. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "readonly": {"default": true, "description": "If readonly is set to True then TrueNAS will not attempt to write new idmap entries. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url"], "title": "LDAP_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url", "readonly", "validate_certificates"]}, {"additionalProperties": false, "description": "The RFC2307 backend reads ID mappings from RFC2307 attributes on a standalone LDAP server. This backend is read-only. Use the `AD` idmap backend if the server is an Active Directory domain controller. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RFC2307", "description": "Idmap backend type identifier for RFC2307 LDAP attribute mapping.", "enum": ["RFC2307"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_url": {"description": "The LDAP URL used to access the LDAP server. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "ldap_user_dn": {"description": "Defines the DN used to authenticate to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "bind_path_user": {"description": "The search base that contains user objects in the LDAP server. ", "title": "bind_path_user", "type": "string", "_name_": "bind_path_user", "_required_": true}, "bind_path_group": {"description": "The search base that contains group objects in the LDAP server. ", "title": "bind_path_group", "type": "string", "_name_": "bind_path_group", "_required_": true}, "user_cn": {"default": false, "description": "If set, query the CN attribute instead of the UID attribute for the user name in LDAP. ", "title": "user_cn", "type": "boolean", "_name_": "user_cn", "_required_": false}, "ldap_realm": {"default": false, "description": "Append @realm to the CN for groups. Also append it to users if user_cn is specified. ", "title": "ldap_realm", "type": "boolean", "_name_": "ldap_realm", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group"], "title": "RFC2307_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group", "user_cn", "ldap_realm", "validate_certificates"]}, {"additionalProperties": false, "description": "The RID backend uses an algorithm to map UIDs and GIDs to SIDs. It determines the UID or GID by adding the RID value from the Windows Account SID to the base value in range_low. RID values in an Active Directory domain can be large, especially as the domain ages. Administrators should configure a range large enough to cover the current RID values assigned by the RID master. One way to do this is to check the RID of a recently created account in Active Directory. For example, if the RID is 500000, the range must include at least 500000 Unix IDs (for example, 1000000 to 2000000). ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RID", "description": "Idmap backend type identifier for RID-based algorithmic mapping.", "enum": ["RID"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "sssd_compat": {"default": false, "description": "Generate an idmap low range using the algorithm from SSSD. This works if the domain uses only a single SSSD idmap slice, and is sufficient if the domain uses only a single SSSD idmap slice. ", "title": "sssd_compat", "type": "boolean", "_name_": "sssd_compat", "_required_": false}}, "required": ["idmap_backend"], "title": "RID_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "sssd_compat"]}], "title": "idmap_domain", "_name_": "idmap_domain", "_required_": false}}, "title": "idmap", "type": "object", "default": {"builtin": {"name": null, "range_high": 100000000, "range_low": 90000001}, "idmap_domain": {"idmap_backend": "RID", "name": null, "range_high": 200000000, "range_low": 100000001, "sssd_compat": false}}, "description": "Configuration for mapping Active Directory accounts to accounts on the TrueNAS server. The exact settings may vary based on other servers and Linux clients in the domain. Defaults are suitable for new deployments without existing support for unix-like operating systems. ", "examples": [{"builtin": {"range_high": 100000000, "range_low": 90000001}, "idmap_domain": {"idmap_backend": "RID", "name": "MYDOMAIN", "range_high": 200000000, "range_low": 100000001}}], "_name_": "idmap", "_required_": false, "_attrs_order_": ["builtin", "idmap_domain"]}, "site": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The Active Directory site where the TrueNAS server is located. TrueNAS detects this automatically during the domain join process. ", "title": "site", "_name_": "site", "_required_": false}, "computer_account_ou": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Use this setting to override the default organizational unit (OU) in which the TrueNAS computer account is created during the domain join. Use it to set a custom location for TrueNAS computer accounts. ", "examples": ["TRUENAS_SERVERS/NYC"], "title": "computer_account_ou", "_name_": "computer_account_ou", "_required_": false}, "use_default_domain": {"default": false, "description": "Controls if the system removes the domain prefix from Active Directory user and group names. If enabled, users appear as \"administrator\" instead of \"EXAMPLE\\administrator\". In most cases, disable this (default) to avoid name conflicts between Active Directory and local accounts. ", "title": "use_default_domain", "type": "boolean", "_name_": "use_default_domain", "_required_": false}, "enable_trusted_domains": {"default": false, "description": "Enable support for trusted domains. If True, then separate trusted domain configuration must be set for all trusted domains. ", "title": "enable_trusted_domains", "type": "boolean", "_name_": "enable_trusted_domains", "_required_": false}, "trusted_domains": {"default": [], "description": "Configuration for trusted domains. ", "examples": [{"idmap_backend": "RID", "name": "BROOK", "range_high": 300000000, "range_low": 200000001}, {"idmap_backend": "RID", "name": "DARVO", "range_high": 400000000, "range_low": 300000001}], "items": [{"discriminator": {"mapping": {"AD": "#/$defs/AD_Idmap", "LDAP": "#/$defs/LDAP_Idmap", "RFC2307": "#/$defs/RFC2307_Idmap", "RID": "#/$defs/RID_Idmap"}, "propertyName": "idmap_backend"}, "oneOf": [{"additionalProperties": false, "description": "The AD backend reads UID and GID mappings from an Active Directory server that uses pre-existing RFC2307 / SFU schema extensions. The administrator must add mappings for users and groups in Active Directory before use.\n\nNOTE: these schema extensions are not present by default in Active Directory.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "AD", "description": "Idmap backend type identifier for Active Directory RFC2307 schema integration.", "enum": ["AD"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "schema_mode": {"description": "The schema mode the idmap backend uses to query Active Directory for user and group information. The RFC2307 schema applies to Windows Server 2003 R2 and newer. The Services for Unix (SFU) schema applies to versions before Windows Server 2003 R2. ", "enum": ["RFC2307", "SFU", "SFU20"], "title": "schema_mode", "type": "string", "_name_": "schema_mode", "_required_": true}, "unix_primary_group": {"default": false, "description": "Defines if the user's primary group is fetched from SFU attributes or the Active Directory primary group. If True, the TrueNAS server uses the `gidNumber` LDAP attribute. If False, it uses the `primaryGroupID` LDAP attribute.\n ", "title": "unix_primary_group", "type": "boolean", "_name_": "unix_primary_group", "_required_": false}, "unix_nss_info": {"default": false, "description": "If True, the login shell and home directory are retrieved from LDAP attributes. If False, or if the Active Directory LDAP entry lacks SFU attributes, the home directory defaults to `/var/empty`. ", "title": "unix_nss_info", "type": "boolean", "_name_": "unix_nss_info", "_required_": false}}, "required": ["idmap_backend", "schema_mode"], "title": "AD_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "schema_mode", "unix_primary_group", "unix_nss_info"]}, {"additionalProperties": false, "description": "The LDAP backend reads and writes UID / GID mapping tables from an external LDAP server. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "LDAP", "description": "Idmap backend type identifier for external LDAP server mapping.", "enum": ["LDAP"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_base_dn": {"description": "Directory base suffix to use for mapping UIDs and GIDs to SIDs. ", "title": "ldap_base_dn", "type": "string", "_name_": "ldap_base_dn", "_required_": true}, "ldap_user_dn": {"description": "Defines the user DN to be used for authentication to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "ldap_url": {"description": "LDAP server to use for the idmap entries. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "readonly": {"default": true, "description": "If readonly is set to True then TrueNAS will not attempt to write new idmap entries. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url"], "title": "LDAP_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url", "readonly", "validate_certificates"]}, {"additionalProperties": false, "description": "The RFC2307 backend reads ID mappings from RFC2307 attributes on a standalone LDAP server. This backend is read-only. Use the `AD` idmap backend if the server is an Active Directory domain controller. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RFC2307", "description": "Idmap backend type identifier for RFC2307 LDAP attribute mapping.", "enum": ["RFC2307"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_url": {"description": "The LDAP URL used to access the LDAP server. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "ldap_user_dn": {"description": "Defines the DN used to authenticate to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "bind_path_user": {"description": "The search base that contains user objects in the LDAP server. ", "title": "bind_path_user", "type": "string", "_name_": "bind_path_user", "_required_": true}, "bind_path_group": {"description": "The search base that contains group objects in the LDAP server. ", "title": "bind_path_group", "type": "string", "_name_": "bind_path_group", "_required_": true}, "user_cn": {"default": false, "description": "If set, query the CN attribute instead of the UID attribute for the user name in LDAP. ", "title": "user_cn", "type": "boolean", "_name_": "user_cn", "_required_": false}, "ldap_realm": {"default": false, "description": "Append @realm to the CN for groups. Also append it to users if user_cn is specified. ", "title": "ldap_realm", "type": "boolean", "_name_": "ldap_realm", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group"], "title": "RFC2307_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group", "user_cn", "ldap_realm", "validate_certificates"]}, {"additionalProperties": false, "description": "The RID backend uses an algorithm to map UIDs and GIDs to SIDs. It determines the UID or GID by adding the RID value from the Windows Account SID to the base value in range_low. RID values in an Active Directory domain can be large, especially as the domain ages. Administrators should configure a range large enough to cover the current RID values assigned by the RID master. One way to do this is to check the RID of a recently created account in Active Directory. For example, if the RID is 500000, the range must include at least 500000 Unix IDs (for example, 1000000 to 2000000). ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RID", "description": "Idmap backend type identifier for RID-based algorithmic mapping.", "enum": ["RID"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "sssd_compat": {"default": false, "description": "Generate an idmap low range using the algorithm from SSSD. This works if the domain uses only a single SSSD idmap slice, and is sufficient if the domain uses only a single SSSD idmap slice. ", "title": "sssd_compat", "type": "boolean", "_name_": "sssd_compat", "_required_": false}}, "required": ["idmap_backend"], "title": "RID_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "sssd_compat"]}]}], "title": "trusted_domains", "type": "array", "_name_": "trusted_domains", "_required_": false}}, "required": ["service_type", "hostname", "domain"], "title": "ActiveDirectoryConfig", "type": "object", "_attrs_order_": ["service_type", "hostname", "domain", "idmap", "site", "computer_account_ou", "use_default_domain", "enable_trusted_domains", "trusted_domains"]}, {"additionalProperties": false, "properties": {"service_type": {"const": "IPA", "enum": ["IPA"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "target_server": {"description": "The name of the IPA server that TrueNAS uses to build URLs when it joins or leaves the IPA domain. Example: \"ipa.example.internal\". ", "minLength": 1, "title": "target_server", "type": "string", "_name_": "target_server", "_required_": true}, "hostname": {"description": "Hostname of TrueNAS server to register in IPA during the join process. Example: \"truenasnyc\". ", "minLength": 1, "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "The domain of the IPA server. Example \"ipa.internal\". ", "minLength": 1, "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "basedn": {"description": "The base DN to use when performing LDAP operations. Example: \"dc=example,dc=internal\". ", "title": "basedn", "type": "string", "_name_": "basedn", "_required_": true}, "smb_domain": {"anyOf": [{"additionalProperties": false, "description": "This is a special idmap backend used when TrueNAS joins an IPA domain. The remote IPA server provides the configuration information during the domain join process.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "SSS", "description": "Idmap backend type identifier for System Security Services Daemon integration.", "enum": ["SSS"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "domain_name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the SMB domain as defined in the IPA configuration for the IPA domain to which TrueNAS is joined. ", "examples": ["IXDOM.INTERNAL"], "title": "domain_name", "_name_": "domain_name", "_required_": false}, "domain_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The domain SID for the IPA domain to which TrueNAS is joined. ", "examples": ["S-1-5-21-3696504179-2855309571-923743039"], "title": "domain_sid", "_name_": "domain_sid", "_required_": false}}, "required": ["idmap_backend"], "title": "IPA_SMBDomain", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "domain_name", "domain_sid"]}, {"type": "null"}], "default": null, "description": "Settings for the IPA SMB domain. TrueNAS detects these settings during IPA join. Some IPA domains may not include SMB schema configuration. ", "title": "smb_domain", "_name_": "smb_domain", "_required_": false}, "validate_certificates": {"default": true, "description": "If `False`, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["service_type", "target_server", "hostname", "domain", "basedn"], "title": "IPAConfig", "type": "object", "_attrs_order_": ["service_type", "target_server", "hostname", "domain", "basedn", "smb_domain", "validate_certificates"]}, {"additionalProperties": false, "properties": {"service_type": {"const": "LDAP", "enum": ["LDAP"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "server_urls": {"description": "List of LDAP server URIs used for LDAP binds. Each URI must begin with ldap:// or ldaps:// and may use either a DNS name or an IP address. Example: `['ldaps://myldap.domain.internal']`.", "items": [{"type": "string"}], "title": "server_urls", "type": "array", "_name_": "server_urls", "_required_": true}, "basedn": {"description": "The base DN to use when performing LDAP operations. Example: `\"dc=domain,dc=internal\"`. ", "title": "basedn", "type": "string", "_name_": "basedn", "_required_": true}, "starttls": {"default": false, "description": "Establish TLS by transmitting a StartTLS request to the server. ", "title": "starttls", "type": "boolean", "_name_": "starttls", "_required_": false}, "validate_certificates": {"default": true, "description": "If `False`, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}, "schema": {"default": "RFC2307", "description": "The type of LDAP attribute schema that the remote LDAP server uses. ", "enum": ["RFC2307", "RFC2307BIS"], "title": "schema", "type": "string", "_name_": "schema", "_required_": false}, "search_bases": {"additionalProperties": false, "description": "Alternative LDAP search base settings. These settings define where to find user, group, and netgroup entries. If unspecified (the default), TrueNAS uses the `basedn` to find users. groups, and netgroups. Use these settings only if the LDAP server uses a non-standard LDAP schema or if you want to limit the accounts available on TrueNAS. ", "properties": {"base_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP user searches. If null (default) then the `base_dn` is used. ", "title": "base_user", "_name_": "base_user", "_required_": false}, "base_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP group searches. If null (default) then the `base_dn` is used. ", "title": "base_group", "_name_": "base_group", "_required_": false}, "base_netgroup": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP netgroup searches. If null (default) then the `base_dn` is used. ", "title": "base_netgroup", "_name_": "base_netgroup", "_required_": false}}, "title": "search_bases", "type": "object", "default": {"base_user": null, "base_group": null, "base_netgroup": null}, "_name_": "search_bases", "_required_": false, "_attrs_order_": ["base_user", "base_group", "base_netgroup"]}, "attribute_maps": {"additionalProperties": false, "properties": {"passwd": {"additionalProperties": false, "description": "LDAP attribute mappings for passwd/user entries.", "properties": {"user_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The user entry object class in LDAP. ", "title": "user_object_class", "_name_": "user_object_class", "_required_": false}, "user_name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's login name. ", "title": "user_name", "_name_": "user_name", "_required_": false}, "user_uid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's id. ", "title": "user_uid", "_name_": "user_uid", "_required_": false}, "user_gid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's primary group id. ", "title": "user_gid", "_name_": "user_gid", "_required_": false}, "user_gecos": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's gecos field. ", "title": "user_gecos", "_name_": "user_gecos", "_required_": false}, "user_home_directory": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's home directory. ", "title": "user_home_directory", "_name_": "user_home_directory", "_required_": false}, "user_shell": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the path to the user's default shell. ", "title": "user_shell", "_name_": "user_shell", "_required_": false}}, "title": "passwd", "type": "object", "default": {"user_object_class": null, "user_name": null, "user_uid": null, "user_gid": null, "user_gecos": null, "user_home_directory": null, "user_shell": null}, "_name_": "passwd", "_required_": false, "_attrs_order_": ["user_object_class", "user_name", "user_uid", "user_gid", "user_gecos", "user_home_directory", "user_shell"]}, "shadow": {"additionalProperties": false, "description": "LDAP attribute mappings for shadow password REDACTED, "properties": {"shadow_last_change": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (date of the last password REDACTED, "title": "shadow_last_change", "_name_": "shadow_last_change", "_required_": false}, "shadow_min": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (minimum password REDACTED, "title": "shadow_min", "_name_": "shadow_min", "_required_": false}, "shadow_max": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (maximum password REDACTED, "title": "shadow_max", "_name_": "shadow_max", "_required_": false}, "shadow_warning": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (password REDACTED, "title": "shadow_warning", "_name_": "shadow_warning", "_required_": false}, "shadow_inactive": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (password REDACTED, "title": "shadow_inactive", "_name_": "shadow_inactive", "_required_": false}, "shadow_expire": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (account expiration date). ", "title": "shadow_expire", "_name_": "shadow_expire", "_required_": false}}, "title": "shadow", "type": "object", "default": {"shadow_last_change": null, "shadow_min": null, "shadow_max": null, "shadow_warning": null, "shadow_inactive": null, "shadow_expire": null}, "_name_": "shadow", "_required_": false, "_attrs_order_": ["shadow_last_change", "shadow_min", "shadow_max", "shadow_warning", "shadow_inactive", "shadow_expire"]}, "group": {"additionalProperties": false, "description": "LDAP attribute mappings for group entries.", "properties": {"group_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP object class for group entries. ", "title": "group_object_class", "_name_": "group_object_class", "_required_": false}, "group_gid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the group's id. ", "title": "group_gid", "_name_": "group_gid", "_required_": false}, "group_member": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the names of the group's members. ", "title": "group_member", "_name_": "group_member", "_required_": false}}, "title": "group", "type": "object", "default": {"group_object_class": null, "group_gid": null, "group_member": null}, "_name_": "group", "_required_": false, "_attrs_order_": ["group_object_class", "group_gid", "group_member"]}, "netgroup": {"additionalProperties": false, "description": "LDAP attribute mappings for netgroup entries.", "properties": {"netgroup_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP object class for netgroup entries. ", "title": "netgroup_object_class", "_name_": "netgroup_object_class", "_required_": false}, "netgroup_member": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the netgroup's members. ", "title": "netgroup_member", "_name_": "netgroup_member", "_required_": false}, "netgroup_triple": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for netgroup triples (host, user, domain). ", "title": "netgroup_triple", "_name_": "netgroup_triple", "_required_": false}}, "title": "netgroup", "type": "object", "default": {"netgroup_object_class": null, "netgroup_member": null, "netgroup_triple": null}, "_name_": "netgroup", "_required_": false, "_attrs_order_": ["netgroup_object_class", "netgroup_member", "netgroup_triple"]}}, "title": "attribute_maps", "type": "object", "default": {"passwd": {"user_gecos": null, "user_gid": null, "user_home_directory": null, "user_name": null, "user_object_class": null, "user_shell": null, "user_uid": null}, "shadow": {"shadow_expire": null, "shadow_inactive": null, "shadow_last_change": null, "shadow_max": null, "shadow_min": null, "shadow_warning": null}, "group": {"group_gid": null, "group_member": null, "group_object_class": null}, "netgroup": {"netgroup_member": null, "netgroup_object_class": null, "netgroup_triple": null}}, "description": "Optional LDAP attribute mapping for LDAP servers that do not follow RFC2307 or RFC2307BIS. Use this only if the LDAP server is non-standard. ", "_name_": "attribute_maps", "_required_": false, "_attrs_order_": ["passwd", "shadow", "group", "netgroup"]}, "auxiliary_parameters": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Additional paramaters to add to the SSSD configuration.\n\nWARNING: TrueNAS does not check the validity of these parameters. Incorrect values can cause production outages when they are applied or after an operating system upgrade. ", "title": "auxiliary_parameters", "_name_": "auxiliary_parameters", "_required_": false}}, "required": ["service_type", "server_urls", "basedn"], "title": "LDAPConfig", "type": "object", "_attrs_order_": ["service_type", "server_urls", "basedn", "starttls", "validate_certificates", "schema", "search_bases", "attribute_maps", "auxiliary_parameters"]}]}, {"type": "null"}], "default": null, "description": "The service_type specific configuration for the directory sevices plugin. ", "examples": [{"computer_account_ou": "TRUENAS_SERVERS", "domain": "ACME.INTERNAL", "hostname": "TRUENASZ356"}, {"basedn": "dc=ipadom,dc=internal", "domain": "ipadom.internal", "hostname": "TRUENASZ345", "target_server": "ipasrv5.ipadom.internal"}, {"basedn": "dc=ipadom,dc=internal", "server_urls": ["ldap.ipadom.internal"]}], "title": "configuration", "_name_": "configuration", "_required_": false}}, "required": ["id", "service_type", "credential REDACTED, "enable"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "service_type", "credential REDACTED, "enable", "enable_account_cache", "enable_dns_updates", "timeout", "kerberos_realm", "configuration"]}]}, "directoryservices.leave": {"description": "Leave an Active Directory or IPA domain. Calling this endpoint when the directory services status is\n`HEALTHY` will cause TrueNAS to remove its account from the domain and then reset the local directory\nservices configuration on TrueNAS. ", "cli_description": "Leave an Active Directory or IPA domain", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"credential REDACTED, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_USER"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "username": {"description": "Username of the account to use to create a kerberos ticket for authentication to directory services. This account must exist on the domain controller. ", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["credential REDACTED, "username", "password REDACTED, "title": "credential REDACTED, "type": "object", "description": "Kerberos user credential REDACTED, "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["credential REDACTED, "username", "password REDACTED}}, "required": ["credential REDACTED, "title": "credential REDACTED, "type": "object", "description": "DirectoryServicesLeaveArgs parameters.", "_name_": "credential REDACTED, "_required_": true, "_attrs_order_": ["credential REDACTED}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "directoryservices.status": {"description": "Provide the type and status of the currently-enabled directory service", "cli_description": "Provide the type and status of the currently-enabled directory service", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"type": {"anyOf": [{"enum": ["ACTIVEDIRECTORY", "IPA", "LDAP"], "type": "string"}, {"type": "null"}], "description": "The type of enabled directory service. ", "title": "type", "_name_": "type", "_required_": true}, "status": {"anyOf": [{"enum": ["DISABLED", "FAULTED", "LEAVING", "JOINING", "HEALTHY"], "type": "string"}, {"type": "null"}], "default": null, "description": "This field shows the directory service status from the last health check. The status is null if directory services are disabled. ", "title": "status", "_name_": "status", "_required_": false}, "status_msg": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This field shows the reason why the directory service is FAULTED after a failed health check. If the directory service is not faulted, the field is null. ", "title": "status_msg", "_name_": "status_msg", "_required_": false}}, "required": ["type"], "title": "result", "type": "object", "description": "DirectoryServicesStatusResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "status", "status_msg"]}]}, "directoryservices.sync_keytab": {"description": "Sync local keytab with remote domain controller. This is required if additional\nkerberos SPNs were added to the truenas account in the remote domain controller after\njoining the directory service.\n\nThis is currently only implemented for active directory. ", "cli_description": "Sync local keytab with remote domain controller", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "directoryservices.update": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"additionalProperties": false, "description": "DirectoryServicesUpdateArgs parameters.", "properties": {"service_type": {"anyOf": [{"enum": ["ACTIVEDIRECTORY", "IPA", "LDAP"], "type": "string"}, {"type": "null"}], "description": "The pre-existing directory service type to which to bind TrueNAS. Select ACTIVEDIRECTORY to join an Active Directory domain. Select IPA to join a FreeIPA domain. Select LDAP to bind to one or more OpenLDAP-compatible servers. ", "title": "service_type", "_name_": "service_type", "_required_": false}, "credential REDACTED, "KERBEROS_USER": "#/$defs/CredKRBUser", "LDAP_ANONYMOUS": "#/$defs/CredLDAPAnonymous", "LDAP_MTLS": "#/$defs/CredLDAPMTLS", "LDAP_PLAIN": "#/$defs/CredLDAPPlain"}, "propertyName": "credential REDACTED}, "oneOf": [{"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_USER"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "username": {"description": "Username of the account to use to create a kerberos ticket for authentication to directory services. This account must exist on the domain controller. ", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["credential REDACTED, "username", "password REDACTED, "title": "CredKRBUser", "type": "object", "_attrs_order_": ["credential REDACTED, "username", "password REDACTED}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_PRINCIPAL"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "principal": {"description": "A kerberos principal is a unique identity to which Kerberos can assign tickets. The specified kerberos principal must have an entry within a keytab on the TrueNAS server. ", "minLength": 1, "title": "principal", "type": "string", "_name_": "principal", "_required_": true}}, "required": ["credential REDACTED, "principal"], "title": "CredKRBPrincipal", "type": "object", "_attrs_order_": ["credential REDACTED, "principal"]}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["LDAP_PLAIN"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "binddn": {"description": "Distinguished name to use for LDAP authentication.", "title": "binddn", "type": "string", "_name_": "binddn", "_required_": true}, "bindpw": {"description": "Password REDACTED, "minLength": 1, "title": "bindpw", "type": "string", "_name_": "bindpw", "_required_": true}}, "required": ["credential REDACTED, "binddn", "bindpw"], "title": "CredLDAPPlain", "type": "object", "_attrs_order_": ["credential REDACTED, "binddn", "bindpw"]}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Anonymous LDAP authentication with no credential REDACTED, "enum": ["LDAP_ANONYMOUS"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}}, "required": ["credential REDACTED, "title": "CredLDAPAnonymous", "type": "object", "_attrs_order_": ["credential REDACTED}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["LDAP_MTLS"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "client_certificate": {"description": "The client certificate name used for mutual TLS authentication to the remote LDAP server. ", "minLength": 1, "title": "client_certificate", "type": "string", "_name_": "client_certificate", "_required_": true}}, "required": ["credential REDACTED, "client_certificate"], "title": "CredLDAPMTLS", "type": "object", "_attrs_order_": ["credential REDACTED, "client_certificate"]}]}, {"type": "null"}], "description": "Credential REDACTED, GSSAPI binds replace plain LDAP binds. Use Kerberos or mutual TLS authentication when possible for better security.\n\nThe following credential REDACTED, `LDAP_ANONYMOUS`, `LDAP_MTLS`, `KERBEROS_USER`, and `KERBEROS_PRINCIPAL`. NOTE: prior configuration of kerberos realm is required in order to use kerberos credential REDACTED, "examples": [{"binddn": "uid=truenasserver,ou=Users,dc=ldap01,dc=internal", "bindpw": "Canary", "credential REDACTED}, {"credential REDACTED}, {"client_certificate": "ldap01_client_cert", "credential REDACTED}, {"credential REDACTED, "password REDACTED, "username": "truenas_user"}, {"credential REDACTED, "principal": "truenas@LDAP01.INTERNAL"}], "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": false}, "enable": {"description": "Enable the directory service.\n\nIf TrueNAS has never joined the specified domain (IPA or Active Directory), setting this to True causes TrueNAS to attempt to join the domain.\n\nNOTE: The domain join process for Active Directory and IPA will make changes to the domain such as creating a new computer account for the TrueNAS server and creating DNS records for TrueNAS. ", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "enable_account_cache": {"description": "Enable backend caching for user and group lists. If enabled, then directory services users and groups will be presented as choices in the UI dropdowns and in API responses for user and group queries. This setting also controls whether users and groups appear in getent results. Disable this setting to reduce load on the directory server when necessary. ", "title": "enable_account_cache", "type": "boolean", "_name_": "enable_account_cache", "_required_": false}, "enable_dns_updates": {"description": "Enable automatic DNS updates for the TrueNAS server in the domain via nsupdate and gssapi / TSIG. ", "title": "enable_dns_updates", "type": "boolean", "_name_": "enable_dns_updates", "_required_": false}, "timeout": {"description": "The timeout value for DNS queries that are performed as part of the join process and NETWORK_TIMEOUT for LDAP requests. ", "maximum": 60, "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "kerberos_realm": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Name of kerberos realm used for authentication to the directory service. If set to null, then Kerberos is not used for binding to the directory service. When joining an Active Directory or IPA domain for the first time, the realm is detected and configured automatically if not specified. ", "title": "kerberos_realm", "_name_": "kerberos_realm", "_required_": false}, "configuration": {"anyOf": [{"discriminator": {"mapping": {"ACTIVEDIRECTORY": "#/$defs/ActiveDirectoryConfig", "IPA": "#/$defs/IPAConfig", "LDAP": "#/$defs/LDAPConfig"}, "propertyName": "service_type"}, "oneOf": [{"additionalProperties": false, "properties": {"service_type": {"const": "ACTIVEDIRECTORY", "enum": ["ACTIVEDIRECTORY"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "hostname": {"description": "Hostname of TrueNAS server to register in Active Directory. Example: \"truenasnyc\". ", "minLength": 1, "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "The full DNS domain name of the Active Directory domain. This must not be a domain controller. Example: \"mydomain.internal\". ", "minLength": 1, "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "idmap": {"additionalProperties": false, "properties": {"builtin": {"additionalProperties": false, "description": "UID and GID range configuration for automatically generated accounts linked to well-known and BUILTIN accounts on Windows servers. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 90000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 100000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}}, "title": "builtin", "type": "object", "default": {"name": null, "range_low": 90000001, "range_high": 100000000}, "_name_": "builtin", "_required_": false, "_attrs_order_": ["name", "range_low", "range_high"]}, "idmap_domain": {"default": {"name": null, "range_low": 100000001, "range_high": 200000000, "idmap_backend": "RID", "sssd_compat": false}, "description": "This configuration defines how domain accounts joined to TrueNAS are mapped to Unix UIDs and GIDs on the TrueNAS server. Most TrueNAS deployments use the RID backend, which algorithmically assigns UIDs and GIDs based on the Active Directory account SID. Another common option is the AD backend, which reads predefined Active Directory LDAP schema attributes that assign explicit UID and GID numbers to accounts. ", "discriminator": {"mapping": {"AD": "#/$defs/AD_Idmap", "LDAP": "#/$defs/LDAP_Idmap", "RFC2307": "#/$defs/RFC2307_Idmap", "RID": "#/$defs/RID_Idmap"}, "propertyName": "idmap_backend"}, "oneOf": [{"additionalProperties": false, "description": "The AD backend reads UID and GID mappings from an Active Directory server that uses pre-existing RFC2307 / SFU schema extensions. The administrator must add mappings for users and groups in Active Directory before use.\n\nNOTE: these schema extensions are not present by default in Active Directory.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "AD", "description": "Idmap backend type identifier for Active Directory RFC2307 schema integration.", "enum": ["AD"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "schema_mode": {"description": "The schema mode the idmap backend uses to query Active Directory for user and group information. The RFC2307 schema applies to Windows Server 2003 R2 and newer. The Services for Unix (SFU) schema applies to versions before Windows Server 2003 R2. ", "enum": ["RFC2307", "SFU", "SFU20"], "title": "schema_mode", "type": "string", "_name_": "schema_mode", "_required_": true}, "unix_primary_group": {"default": false, "description": "Defines if the user's primary group is fetched from SFU attributes or the Active Directory primary group. If True, the TrueNAS server uses the `gidNumber` LDAP attribute. If False, it uses the `primaryGroupID` LDAP attribute.\n ", "title": "unix_primary_group", "type": "boolean", "_name_": "unix_primary_group", "_required_": false}, "unix_nss_info": {"default": false, "description": "If True, the login shell and home directory are retrieved from LDAP attributes. If False, or if the Active Directory LDAP entry lacks SFU attributes, the home directory defaults to `/var/empty`. ", "title": "unix_nss_info", "type": "boolean", "_name_": "unix_nss_info", "_required_": false}}, "required": ["idmap_backend", "schema_mode"], "title": "AD_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "schema_mode", "unix_primary_group", "unix_nss_info"]}, {"additionalProperties": false, "description": "The LDAP backend reads and writes UID / GID mapping tables from an external LDAP server. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "LDAP", "description": "Idmap backend type identifier for external LDAP server mapping.", "enum": ["LDAP"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_base_dn": {"description": "Directory base suffix to use for mapping UIDs and GIDs to SIDs. ", "title": "ldap_base_dn", "type": "string", "_name_": "ldap_base_dn", "_required_": true}, "ldap_user_dn": {"description": "Defines the user DN to be used for authentication to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "ldap_url": {"description": "LDAP server to use for the idmap entries. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "readonly": {"default": true, "description": "If readonly is set to True then TrueNAS will not attempt to write new idmap entries. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url"], "title": "LDAP_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url", "readonly", "validate_certificates"]}, {"additionalProperties": false, "description": "The RFC2307 backend reads ID mappings from RFC2307 attributes on a standalone LDAP server. This backend is read-only. Use the `AD` idmap backend if the server is an Active Directory domain controller. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RFC2307", "description": "Idmap backend type identifier for RFC2307 LDAP attribute mapping.", "enum": ["RFC2307"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_url": {"description": "The LDAP URL used to access the LDAP server. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "ldap_user_dn": {"description": "Defines the DN used to authenticate to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "bind_path_user": {"description": "The search base that contains user objects in the LDAP server. ", "title": "bind_path_user", "type": "string", "_name_": "bind_path_user", "_required_": true}, "bind_path_group": {"description": "The search base that contains group objects in the LDAP server. ", "title": "bind_path_group", "type": "string", "_name_": "bind_path_group", "_required_": true}, "user_cn": {"default": false, "description": "If set, query the CN attribute instead of the UID attribute for the user name in LDAP. ", "title": "user_cn", "type": "boolean", "_name_": "user_cn", "_required_": false}, "ldap_realm": {"default": false, "description": "Append @realm to the CN for groups. Also append it to users if user_cn is specified. ", "title": "ldap_realm", "type": "boolean", "_name_": "ldap_realm", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group"], "title": "RFC2307_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group", "user_cn", "ldap_realm", "validate_certificates"]}, {"additionalProperties": false, "description": "The RID backend uses an algorithm to map UIDs and GIDs to SIDs. It determines the UID or GID by adding the RID value from the Windows Account SID to the base value in range_low. RID values in an Active Directory domain can be large, especially as the domain ages. Administrators should configure a range large enough to cover the current RID values assigned by the RID master. One way to do this is to check the RID of a recently created account in Active Directory. For example, if the RID is 500000, the range must include at least 500000 Unix IDs (for example, 1000000 to 2000000). ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RID", "description": "Idmap backend type identifier for RID-based algorithmic mapping.", "enum": ["RID"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "sssd_compat": {"default": false, "description": "Generate an idmap low range using the algorithm from SSSD. This works if the domain uses only a single SSSD idmap slice, and is sufficient if the domain uses only a single SSSD idmap slice. ", "title": "sssd_compat", "type": "boolean", "_name_": "sssd_compat", "_required_": false}}, "required": ["idmap_backend"], "title": "RID_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "sssd_compat"]}], "title": "idmap_domain", "_name_": "idmap_domain", "_required_": false}}, "title": "idmap", "type": "object", "default": {"builtin": {"name": null, "range_high": 100000000, "range_low": 90000001}, "idmap_domain": {"idmap_backend": "RID", "name": null, "range_high": 200000000, "range_low": 100000001, "sssd_compat": false}}, "description": "Configuration for mapping Active Directory accounts to accounts on the TrueNAS server. The exact settings may vary based on other servers and Linux clients in the domain. Defaults are suitable for new deployments without existing support for unix-like operating systems. ", "examples": [{"builtin": {"range_high": 100000000, "range_low": 90000001}, "idmap_domain": {"idmap_backend": "RID", "name": "MYDOMAIN", "range_high": 200000000, "range_low": 100000001}}], "_name_": "idmap", "_required_": false, "_attrs_order_": ["builtin", "idmap_domain"]}, "site": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The Active Directory site where the TrueNAS server is located. TrueNAS detects this automatically during the domain join process. ", "title": "site", "_name_": "site", "_required_": false}, "computer_account_ou": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Use this setting to override the default organizational unit (OU) in which the TrueNAS computer account is created during the domain join. Use it to set a custom location for TrueNAS computer accounts. ", "examples": ["TRUENAS_SERVERS/NYC"], "title": "computer_account_ou", "_name_": "computer_account_ou", "_required_": false}, "use_default_domain": {"default": false, "description": "Controls if the system removes the domain prefix from Active Directory user and group names. If enabled, users appear as \"administrator\" instead of \"EXAMPLE\\administrator\". In most cases, disable this (default) to avoid name conflicts between Active Directory and local accounts. ", "title": "use_default_domain", "type": "boolean", "_name_": "use_default_domain", "_required_": false}, "enable_trusted_domains": {"default": false, "description": "Enable support for trusted domains. If True, then separate trusted domain configuration must be set for all trusted domains. ", "title": "enable_trusted_domains", "type": "boolean", "_name_": "enable_trusted_domains", "_required_": false}, "trusted_domains": {"default": [], "description": "Configuration for trusted domains. ", "examples": [{"idmap_backend": "RID", "name": "BROOK", "range_high": 300000000, "range_low": 200000001}, {"idmap_backend": "RID", "name": "DARVO", "range_high": 400000000, "range_low": 300000001}], "items": [{"discriminator": {"mapping": {"AD": "#/$defs/AD_Idmap", "LDAP": "#/$defs/LDAP_Idmap", "RFC2307": "#/$defs/RFC2307_Idmap", "RID": "#/$defs/RID_Idmap"}, "propertyName": "idmap_backend"}, "oneOf": [{"additionalProperties": false, "description": "The AD backend reads UID and GID mappings from an Active Directory server that uses pre-existing RFC2307 / SFU schema extensions. The administrator must add mappings for users and groups in Active Directory before use.\n\nNOTE: these schema extensions are not present by default in Active Directory.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "AD", "description": "Idmap backend type identifier for Active Directory RFC2307 schema integration.", "enum": ["AD"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "schema_mode": {"description": "The schema mode the idmap backend uses to query Active Directory for user and group information. The RFC2307 schema applies to Windows Server 2003 R2 and newer. The Services for Unix (SFU) schema applies to versions before Windows Server 2003 R2. ", "enum": ["RFC2307", "SFU", "SFU20"], "title": "schema_mode", "type": "string", "_name_": "schema_mode", "_required_": true}, "unix_primary_group": {"default": false, "description": "Defines if the user's primary group is fetched from SFU attributes or the Active Directory primary group. If True, the TrueNAS server uses the `gidNumber` LDAP attribute. If False, it uses the `primaryGroupID` LDAP attribute.\n ", "title": "unix_primary_group", "type": "boolean", "_name_": "unix_primary_group", "_required_": false}, "unix_nss_info": {"default": false, "description": "If True, the login shell and home directory are retrieved from LDAP attributes. If False, or if the Active Directory LDAP entry lacks SFU attributes, the home directory defaults to `/var/empty`. ", "title": "unix_nss_info", "type": "boolean", "_name_": "unix_nss_info", "_required_": false}}, "required": ["idmap_backend", "schema_mode"], "title": "AD_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "schema_mode", "unix_primary_group", "unix_nss_info"]}, {"additionalProperties": false, "description": "The LDAP backend reads and writes UID / GID mapping tables from an external LDAP server. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "LDAP", "description": "Idmap backend type identifier for external LDAP server mapping.", "enum": ["LDAP"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_base_dn": {"description": "Directory base suffix to use for mapping UIDs and GIDs to SIDs. ", "title": "ldap_base_dn", "type": "string", "_name_": "ldap_base_dn", "_required_": true}, "ldap_user_dn": {"description": "Defines the user DN to be used for authentication to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "ldap_url": {"description": "LDAP server to use for the idmap entries. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "readonly": {"default": true, "description": "If readonly is set to True then TrueNAS will not attempt to write new idmap entries. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url"], "title": "LDAP_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url", "readonly", "validate_certificates"]}, {"additionalProperties": false, "description": "The RFC2307 backend reads ID mappings from RFC2307 attributes on a standalone LDAP server. This backend is read-only. Use the `AD` idmap backend if the server is an Active Directory domain controller. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RFC2307", "description": "Idmap backend type identifier for RFC2307 LDAP attribute mapping.", "enum": ["RFC2307"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_url": {"description": "The LDAP URL used to access the LDAP server. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "ldap_user_dn": {"description": "Defines the DN used to authenticate to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "bind_path_user": {"description": "The search base that contains user objects in the LDAP server. ", "title": "bind_path_user", "type": "string", "_name_": "bind_path_user", "_required_": true}, "bind_path_group": {"description": "The search base that contains group objects in the LDAP server. ", "title": "bind_path_group", "type": "string", "_name_": "bind_path_group", "_required_": true}, "user_cn": {"default": false, "description": "If set, query the CN attribute instead of the UID attribute for the user name in LDAP. ", "title": "user_cn", "type": "boolean", "_name_": "user_cn", "_required_": false}, "ldap_realm": {"default": false, "description": "Append @realm to the CN for groups. Also append it to users if user_cn is specified. ", "title": "ldap_realm", "type": "boolean", "_name_": "ldap_realm", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group"], "title": "RFC2307_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group", "user_cn", "ldap_realm", "validate_certificates"]}, {"additionalProperties": false, "description": "The RID backend uses an algorithm to map UIDs and GIDs to SIDs. It determines the UID or GID by adding the RID value from the Windows Account SID to the base value in range_low. RID values in an Active Directory domain can be large, especially as the domain ages. Administrators should configure a range large enough to cover the current RID values assigned by the RID master. One way to do this is to check the RID of a recently created account in Active Directory. For example, if the RID is 500000, the range must include at least 500000 Unix IDs (for example, 1000000 to 2000000). ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RID", "description": "Idmap backend type identifier for RID-based algorithmic mapping.", "enum": ["RID"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "sssd_compat": {"default": false, "description": "Generate an idmap low range using the algorithm from SSSD. This works if the domain uses only a single SSSD idmap slice, and is sufficient if the domain uses only a single SSSD idmap slice. ", "title": "sssd_compat", "type": "boolean", "_name_": "sssd_compat", "_required_": false}}, "required": ["idmap_backend"], "title": "RID_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "sssd_compat"]}]}], "title": "trusted_domains", "type": "array", "_name_": "trusted_domains", "_required_": false}}, "required": ["service_type", "hostname", "domain"], "title": "ActiveDirectoryConfig", "type": "object", "_attrs_order_": ["service_type", "hostname", "domain", "idmap", "site", "computer_account_ou", "use_default_domain", "enable_trusted_domains", "trusted_domains"]}, {"additionalProperties": false, "properties": {"service_type": {"const": "IPA", "enum": ["IPA"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "target_server": {"description": "The name of the IPA server that TrueNAS uses to build URLs when it joins or leaves the IPA domain. Example: \"ipa.example.internal\". ", "minLength": 1, "title": "target_server", "type": "string", "_name_": "target_server", "_required_": true}, "hostname": {"description": "Hostname of TrueNAS server to register in IPA during the join process. Example: \"truenasnyc\". ", "minLength": 1, "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "The domain of the IPA server. Example \"ipa.internal\". ", "minLength": 1, "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "basedn": {"description": "The base DN to use when performing LDAP operations. Example: \"dc=example,dc=internal\". ", "title": "basedn", "type": "string", "_name_": "basedn", "_required_": true}, "smb_domain": {"anyOf": [{"additionalProperties": false, "description": "This is a special idmap backend used when TrueNAS joins an IPA domain. The remote IPA server provides the configuration information during the domain join process.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "SSS", "description": "Idmap backend type identifier for System Security Services Daemon integration.", "enum": ["SSS"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "domain_name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the SMB domain as defined in the IPA configuration for the IPA domain to which TrueNAS is joined. ", "examples": ["IXDOM.INTERNAL"], "title": "domain_name", "_name_": "domain_name", "_required_": false}, "domain_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The domain SID for the IPA domain to which TrueNAS is joined. ", "examples": ["S-1-5-21-3696504179-2855309571-923743039"], "title": "domain_sid", "_name_": "domain_sid", "_required_": false}}, "required": ["idmap_backend"], "title": "IPA_SMBDomain", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "domain_name", "domain_sid"]}, {"type": "null"}], "default": null, "description": "Settings for the IPA SMB domain. TrueNAS detects these settings during IPA join. Some IPA domains may not include SMB schema configuration. ", "title": "smb_domain", "_name_": "smb_domain", "_required_": false}, "validate_certificates": {"default": true, "description": "If `False`, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["service_type", "target_server", "hostname", "domain", "basedn"], "title": "IPAConfig", "type": "object", "_attrs_order_": ["service_type", "target_server", "hostname", "domain", "basedn", "smb_domain", "validate_certificates"]}, {"additionalProperties": false, "properties": {"service_type": {"const": "LDAP", "enum": ["LDAP"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "server_urls": {"description": "List of LDAP server URIs used for LDAP binds. Each URI must begin with ldap:// or ldaps:// and may use either a DNS name or an IP address. Example: `['ldaps://myldap.domain.internal']`.", "items": [{"type": "string"}], "title": "server_urls", "type": "array", "_name_": "server_urls", "_required_": true}, "basedn": {"description": "The base DN to use when performing LDAP operations. Example: `\"dc=domain,dc=internal\"`. ", "title": "basedn", "type": "string", "_name_": "basedn", "_required_": true}, "starttls": {"default": false, "description": "Establish TLS by transmitting a StartTLS request to the server. ", "title": "starttls", "type": "boolean", "_name_": "starttls", "_required_": false}, "validate_certificates": {"default": true, "description": "If `False`, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}, "schema": {"default": "RFC2307", "description": "The type of LDAP attribute schema that the remote LDAP server uses. ", "enum": ["RFC2307", "RFC2307BIS"], "title": "schema", "type": "string", "_name_": "schema", "_required_": false}, "search_bases": {"additionalProperties": false, "description": "Alternative LDAP search base settings. These settings define where to find user, group, and netgroup entries. If unspecified (the default), TrueNAS uses the `basedn` to find users. groups, and netgroups. Use these settings only if the LDAP server uses a non-standard LDAP schema or if you want to limit the accounts available on TrueNAS. ", "properties": {"base_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP user searches. If null (default) then the `base_dn` is used. ", "title": "base_user", "_name_": "base_user", "_required_": false}, "base_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP group searches. If null (default) then the `base_dn` is used. ", "title": "base_group", "_name_": "base_group", "_required_": false}, "base_netgroup": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP netgroup searches. If null (default) then the `base_dn` is used. ", "title": "base_netgroup", "_name_": "base_netgroup", "_required_": false}}, "title": "search_bases", "type": "object", "default": {"base_user": null, "base_group": null, "base_netgroup": null}, "_name_": "search_bases", "_required_": false, "_attrs_order_": ["base_user", "base_group", "base_netgroup"]}, "attribute_maps": {"additionalProperties": false, "properties": {"passwd": {"additionalProperties": false, "description": "LDAP attribute mappings for passwd/user entries.", "properties": {"user_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The user entry object class in LDAP. ", "title": "user_object_class", "_name_": "user_object_class", "_required_": false}, "user_name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's login name. ", "title": "user_name", "_name_": "user_name", "_required_": false}, "user_uid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's id. ", "title": "user_uid", "_name_": "user_uid", "_required_": false}, "user_gid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's primary group id. ", "title": "user_gid", "_name_": "user_gid", "_required_": false}, "user_gecos": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's gecos field. ", "title": "user_gecos", "_name_": "user_gecos", "_required_": false}, "user_home_directory": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's home directory. ", "title": "user_home_directory", "_name_": "user_home_directory", "_required_": false}, "user_shell": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the path to the user's default shell. ", "title": "user_shell", "_name_": "user_shell", "_required_": false}}, "title": "passwd", "type": "object", "default": {"user_object_class": null, "user_name": null, "user_uid": null, "user_gid": null, "user_gecos": null, "user_home_directory": null, "user_shell": null}, "_name_": "passwd", "_required_": false, "_attrs_order_": ["user_object_class", "user_name", "user_uid", "user_gid", "user_gecos", "user_home_directory", "user_shell"]}, "shadow": {"additionalProperties": false, "description": "LDAP attribute mappings for shadow password REDACTED, "properties": {"shadow_last_change": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (date of the last password REDACTED, "title": "shadow_last_change", "_name_": "shadow_last_change", "_required_": false}, "shadow_min": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (minimum password REDACTED, "title": "shadow_min", "_name_": "shadow_min", "_required_": false}, "shadow_max": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (maximum password REDACTED, "title": "shadow_max", "_name_": "shadow_max", "_required_": false}, "shadow_warning": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (password REDACTED, "title": "shadow_warning", "_name_": "shadow_warning", "_required_": false}, "shadow_inactive": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (password REDACTED, "title": "shadow_inactive", "_name_": "shadow_inactive", "_required_": false}, "shadow_expire": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (account expiration date). ", "title": "shadow_expire", "_name_": "shadow_expire", "_required_": false}}, "title": "shadow", "type": "object", "default": {"shadow_last_change": null, "shadow_min": null, "shadow_max": null, "shadow_warning": null, "shadow_inactive": null, "shadow_expire": null}, "_name_": "shadow", "_required_": false, "_attrs_order_": ["shadow_last_change", "shadow_min", "shadow_max", "shadow_warning", "shadow_inactive", "shadow_expire"]}, "group": {"additionalProperties": false, "description": "LDAP attribute mappings for group entries.", "properties": {"group_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP object class for group entries. ", "title": "group_object_class", "_name_": "group_object_class", "_required_": false}, "group_gid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the group's id. ", "title": "group_gid", "_name_": "group_gid", "_required_": false}, "group_member": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the names of the group's members. ", "title": "group_member", "_name_": "group_member", "_required_": false}}, "title": "group", "type": "object", "default": {"group_object_class": null, "group_gid": null, "group_member": null}, "_name_": "group", "_required_": false, "_attrs_order_": ["group_object_class", "group_gid", "group_member"]}, "netgroup": {"additionalProperties": false, "description": "LDAP attribute mappings for netgroup entries.", "properties": {"netgroup_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP object class for netgroup entries. ", "title": "netgroup_object_class", "_name_": "netgroup_object_class", "_required_": false}, "netgroup_member": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the netgroup's members. ", "title": "netgroup_member", "_name_": "netgroup_member", "_required_": false}, "netgroup_triple": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for netgroup triples (host, user, domain). ", "title": "netgroup_triple", "_name_": "netgroup_triple", "_required_": false}}, "title": "netgroup", "type": "object", "default": {"netgroup_object_class": null, "netgroup_member": null, "netgroup_triple": null}, "_name_": "netgroup", "_required_": false, "_attrs_order_": ["netgroup_object_class", "netgroup_member", "netgroup_triple"]}}, "title": "attribute_maps", "type": "object", "default": {"passwd": {"user_gecos": null, "user_gid": null, "user_home_directory": null, "user_name": null, "user_object_class": null, "user_shell": null, "user_uid": null}, "shadow": {"shadow_expire": null, "shadow_inactive": null, "shadow_last_change": null, "shadow_max": null, "shadow_min": null, "shadow_warning": null}, "group": {"group_gid": null, "group_member": null, "group_object_class": null}, "netgroup": {"netgroup_member": null, "netgroup_object_class": null, "netgroup_triple": null}}, "description": "Optional LDAP attribute mapping for LDAP servers that do not follow RFC2307 or RFC2307BIS. Use this only if the LDAP server is non-standard. ", "_name_": "attribute_maps", "_required_": false, "_attrs_order_": ["passwd", "shadow", "group", "netgroup"]}, "auxiliary_parameters": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Additional paramaters to add to the SSSD configuration.\n\nWARNING: TrueNAS does not check the validity of these parameters. Incorrect values can cause production outages when they are applied or after an operating system upgrade. ", "title": "auxiliary_parameters", "_name_": "auxiliary_parameters", "_required_": false}}, "required": ["service_type", "server_urls", "basedn"], "title": "LDAPConfig", "type": "object", "_attrs_order_": ["service_type", "server_urls", "basedn", "starttls", "validate_certificates", "schema", "search_bases", "attribute_maps", "auxiliary_parameters"]}]}, {"type": "null"}], "description": "The service_type specific configuration for the directory sevices plugin. ", "examples": [{"computer_account_ou": "TRUENAS_SERVERS", "domain": "ACME.INTERNAL", "hostname": "TRUENASZ356"}, {"basedn": "dc=ipadom,dc=internal", "domain": "ipadom.internal", "hostname": "TRUENASZ345", "target_server": "ipasrv5.ipadom.internal"}, {"basedn": "dc=ipadom,dc=internal", "server_urls": ["ldap.ipadom.internal"]}], "title": "configuration", "_name_": "configuration", "_required_": false}, "force": {"description": "Bypass validation to check if a server with this hostname and NetBIOS name is already registered in an IPA or Active Directory domain. Use this option, for example, to replace an existing server with a TrueNAS server. Do not use the force parameter indiscriminately. Using it may cause production outages for clients that rely on the existing server. ", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "directoryservices_update", "type": "object", "_name_": "directoryservices_update", "_required_": true, "_attrs_order_": ["service_type", "credential REDACTED, "enable", "enable_account_cache", "enable_dns_updates", "timeout", "kerberos_realm", "configuration", "force"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the directory services configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "service_type": {"anyOf": [{"enum": ["ACTIVEDIRECTORY", "IPA", "LDAP"], "type": "string"}, {"type": "null"}], "description": "The pre-existing directory service type to which to bind TrueNAS. Select ACTIVEDIRECTORY to join an Active Directory domain. Select IPA to join a FreeIPA domain. Select LDAP to bind to one or more OpenLDAP-compatible servers. ", "title": "service_type", "_name_": "service_type", "_required_": true}, "credential REDACTED, "KERBEROS_USER": "#/$defs/CredKRBUser", "LDAP_ANONYMOUS": "#/$defs/CredLDAPAnonymous", "LDAP_MTLS": "#/$defs/CredLDAPMTLS", "LDAP_PLAIN": "#/$defs/CredLDAPPlain"}, "propertyName": "credential REDACTED}, "oneOf": [{"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_USER"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "username": {"description": "Username of the account to use to create a kerberos ticket for authentication to directory services. This account must exist on the domain controller. ", "minLength": 1, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "minLength": 1, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["credential REDACTED, "username", "password REDACTED, "title": "CredKRBUser", "type": "object", "_attrs_order_": ["credential REDACTED, "username", "password REDACTED}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["KERBEROS_PRINCIPAL"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "principal": {"description": "A kerberos principal is a unique identity to which Kerberos can assign tickets. The specified kerberos principal must have an entry within a keytab on the TrueNAS server. ", "minLength": 1, "title": "principal", "type": "string", "_name_": "principal", "_required_": true}}, "required": ["credential REDACTED, "principal"], "title": "CredKRBPrincipal", "type": "object", "_attrs_order_": ["credential REDACTED, "principal"]}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["LDAP_PLAIN"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "binddn": {"description": "Distinguished name to use for LDAP authentication.", "title": "binddn", "type": "string", "_name_": "binddn", "_required_": true}, "bindpw": {"description": "Password REDACTED, "minLength": 1, "title": "bindpw", "type": "string", "_name_": "bindpw", "_required_": true}}, "required": ["credential REDACTED, "binddn", "bindpw"], "title": "CredLDAPPlain", "type": "object", "_attrs_order_": ["credential REDACTED, "binddn", "bindpw"]}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Anonymous LDAP authentication with no credential REDACTED, "enum": ["LDAP_ANONYMOUS"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}}, "required": ["credential REDACTED, "title": "CredLDAPAnonymous", "type": "object", "_attrs_order_": ["credential REDACTED}, {"additionalProperties": false, "properties": {"credential REDACTED, "description": "Credential REDACTED, "enum": ["LDAP_MTLS"], "title": "credential REDACTED, "type": "string", "_name_": "credential REDACTED, "_required_": true}, "client_certificate": {"description": "The client certificate name used for mutual TLS authentication to the remote LDAP server. ", "minLength": 1, "title": "client_certificate", "type": "string", "_name_": "client_certificate", "_required_": true}}, "required": ["credential REDACTED, "client_certificate"], "title": "CredLDAPMTLS", "type": "object", "_attrs_order_": ["credential REDACTED, "client_certificate"]}]}, {"type": "null"}], "description": "Credential REDACTED, GSSAPI binds replace plain LDAP binds. Use Kerberos or mutual TLS authentication when possible for better security.\n\nThe following credential REDACTED, `LDAP_ANONYMOUS`, `LDAP_MTLS`, `KERBEROS_USER`, and `KERBEROS_PRINCIPAL`. NOTE: prior configuration of kerberos realm is required in order to use kerberos credential REDACTED, "examples": [{"binddn": "uid=truenasserver,ou=Users,dc=ldap01,dc=internal", "bindpw": "Canary", "credential REDACTED}, {"credential REDACTED}, {"client_certificate": "ldap01_client_cert", "credential REDACTED}, {"credential REDACTED, "password REDACTED, "username": "truenas_user"}, {"credential REDACTED, "principal": "truenas@LDAP01.INTERNAL"}], "title": "credential REDACTED, "_name_": "credential REDACTED, "_required_": true}, "enable": {"description": "Enable the directory service.\n\nIf TrueNAS has never joined the specified domain (IPA or Active Directory), setting this to True causes TrueNAS to attempt to join the domain.\n\nNOTE: The domain join process for Active Directory and IPA will make changes to the domain such as creating a new computer account for the TrueNAS server and creating DNS records for TrueNAS. ", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": true}, "enable_account_cache": {"default": true, "description": "Enable backend caching for user and group lists. If enabled, then directory services users and groups will be presented as choices in the UI dropdowns and in API responses for user and group queries. This setting also controls whether users and groups appear in getent results. Disable this setting to reduce load on the directory server when necessary. ", "title": "enable_account_cache", "type": "boolean", "_name_": "enable_account_cache", "_required_": false}, "enable_dns_updates": {"default": true, "description": "Enable automatic DNS updates for the TrueNAS server in the domain via nsupdate and gssapi / TSIG. ", "title": "enable_dns_updates", "type": "boolean", "_name_": "enable_dns_updates", "_required_": false}, "timeout": {"default": 10, "description": "The timeout value for DNS queries that are performed as part of the join process and NETWORK_TIMEOUT for LDAP requests. ", "maximum": 60, "minimum": 5, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "kerberos_realm": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of kerberos realm used for authentication to the directory service. If set to null, then Kerberos is not used for binding to the directory service. When joining an Active Directory or IPA domain for the first time, the realm is detected and configured automatically if not specified. ", "title": "kerberos_realm", "_name_": "kerberos_realm", "_required_": false}, "configuration": {"anyOf": [{"discriminator": {"mapping": {"ACTIVEDIRECTORY": "#/$defs/ActiveDirectoryConfig", "IPA": "#/$defs/IPAConfig", "LDAP": "#/$defs/LDAPConfig"}, "propertyName": "service_type"}, "oneOf": [{"additionalProperties": false, "properties": {"service_type": {"const": "ACTIVEDIRECTORY", "enum": ["ACTIVEDIRECTORY"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "hostname": {"description": "Hostname of TrueNAS server to register in Active Directory. Example: \"truenasnyc\". ", "minLength": 1, "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "The full DNS domain name of the Active Directory domain. This must not be a domain controller. Example: \"mydomain.internal\". ", "minLength": 1, "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "idmap": {"additionalProperties": false, "properties": {"builtin": {"additionalProperties": false, "description": "UID and GID range configuration for automatically generated accounts linked to well-known and BUILTIN accounts on Windows servers. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 90000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 100000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}}, "title": "builtin", "type": "object", "default": {"name": null, "range_low": 90000001, "range_high": 100000000}, "_name_": "builtin", "_required_": false, "_attrs_order_": ["name", "range_low", "range_high"]}, "idmap_domain": {"default": {"name": null, "range_low": 100000001, "range_high": 200000000, "idmap_backend": "RID", "sssd_compat": false}, "description": "This configuration defines how domain accounts joined to TrueNAS are mapped to Unix UIDs and GIDs on the TrueNAS server. Most TrueNAS deployments use the RID backend, which algorithmically assigns UIDs and GIDs based on the Active Directory account SID. Another common option is the AD backend, which reads predefined Active Directory LDAP schema attributes that assign explicit UID and GID numbers to accounts. ", "discriminator": {"mapping": {"AD": "#/$defs/AD_Idmap", "LDAP": "#/$defs/LDAP_Idmap", "RFC2307": "#/$defs/RFC2307_Idmap", "RID": "#/$defs/RID_Idmap"}, "propertyName": "idmap_backend"}, "oneOf": [{"additionalProperties": false, "description": "The AD backend reads UID and GID mappings from an Active Directory server that uses pre-existing RFC2307 / SFU schema extensions. The administrator must add mappings for users and groups in Active Directory before use.\n\nNOTE: these schema extensions are not present by default in Active Directory.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "AD", "description": "Idmap backend type identifier for Active Directory RFC2307 schema integration.", "enum": ["AD"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "schema_mode": {"description": "The schema mode the idmap backend uses to query Active Directory for user and group information. The RFC2307 schema applies to Windows Server 2003 R2 and newer. The Services for Unix (SFU) schema applies to versions before Windows Server 2003 R2. ", "enum": ["RFC2307", "SFU", "SFU20"], "title": "schema_mode", "type": "string", "_name_": "schema_mode", "_required_": true}, "unix_primary_group": {"default": false, "description": "Defines if the user's primary group is fetched from SFU attributes or the Active Directory primary group. If True, the TrueNAS server uses the `gidNumber` LDAP attribute. If False, it uses the `primaryGroupID` LDAP attribute.\n ", "title": "unix_primary_group", "type": "boolean", "_name_": "unix_primary_group", "_required_": false}, "unix_nss_info": {"default": false, "description": "If True, the login shell and home directory are retrieved from LDAP attributes. If False, or if the Active Directory LDAP entry lacks SFU attributes, the home directory defaults to `/var/empty`. ", "title": "unix_nss_info", "type": "boolean", "_name_": "unix_nss_info", "_required_": false}}, "required": ["idmap_backend", "schema_mode"], "title": "AD_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "schema_mode", "unix_primary_group", "unix_nss_info"]}, {"additionalProperties": false, "description": "The LDAP backend reads and writes UID / GID mapping tables from an external LDAP server. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "LDAP", "description": "Idmap backend type identifier for external LDAP server mapping.", "enum": ["LDAP"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_base_dn": {"description": "Directory base suffix to use for mapping UIDs and GIDs to SIDs. ", "title": "ldap_base_dn", "type": "string", "_name_": "ldap_base_dn", "_required_": true}, "ldap_user_dn": {"description": "Defines the user DN to be used for authentication to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "ldap_url": {"description": "LDAP server to use for the idmap entries. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "readonly": {"default": true, "description": "If readonly is set to True then TrueNAS will not attempt to write new idmap entries. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url"], "title": "LDAP_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url", "readonly", "validate_certificates"]}, {"additionalProperties": false, "description": "The RFC2307 backend reads ID mappings from RFC2307 attributes on a standalone LDAP server. This backend is read-only. Use the `AD` idmap backend if the server is an Active Directory domain controller. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RFC2307", "description": "Idmap backend type identifier for RFC2307 LDAP attribute mapping.", "enum": ["RFC2307"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_url": {"description": "The LDAP URL used to access the LDAP server. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "ldap_user_dn": {"description": "Defines the DN used to authenticate to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "bind_path_user": {"description": "The search base that contains user objects in the LDAP server. ", "title": "bind_path_user", "type": "string", "_name_": "bind_path_user", "_required_": true}, "bind_path_group": {"description": "The search base that contains group objects in the LDAP server. ", "title": "bind_path_group", "type": "string", "_name_": "bind_path_group", "_required_": true}, "user_cn": {"default": false, "description": "If set, query the CN attribute instead of the UID attribute for the user name in LDAP. ", "title": "user_cn", "type": "boolean", "_name_": "user_cn", "_required_": false}, "ldap_realm": {"default": false, "description": "Append @realm to the CN for groups. Also append it to users if user_cn is specified. ", "title": "ldap_realm", "type": "boolean", "_name_": "ldap_realm", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group"], "title": "RFC2307_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group", "user_cn", "ldap_realm", "validate_certificates"]}, {"additionalProperties": false, "description": "The RID backend uses an algorithm to map UIDs and GIDs to SIDs. It determines the UID or GID by adding the RID value from the Windows Account SID to the base value in range_low. RID values in an Active Directory domain can be large, especially as the domain ages. Administrators should configure a range large enough to cover the current RID values assigned by the RID master. One way to do this is to check the RID of a recently created account in Active Directory. For example, if the RID is 500000, the range must include at least 500000 Unix IDs (for example, 1000000 to 2000000). ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RID", "description": "Idmap backend type identifier for RID-based algorithmic mapping.", "enum": ["RID"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "sssd_compat": {"default": false, "description": "Generate an idmap low range using the algorithm from SSSD. This works if the domain uses only a single SSSD idmap slice, and is sufficient if the domain uses only a single SSSD idmap slice. ", "title": "sssd_compat", "type": "boolean", "_name_": "sssd_compat", "_required_": false}}, "required": ["idmap_backend"], "title": "RID_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "sssd_compat"]}], "title": "idmap_domain", "_name_": "idmap_domain", "_required_": false}}, "title": "idmap", "type": "object", "default": {"builtin": {"name": null, "range_high": 100000000, "range_low": 90000001}, "idmap_domain": {"idmap_backend": "RID", "name": null, "range_high": 200000000, "range_low": 100000001, "sssd_compat": false}}, "description": "Configuration for mapping Active Directory accounts to accounts on the TrueNAS server. The exact settings may vary based on other servers and Linux clients in the domain. Defaults are suitable for new deployments without existing support for unix-like operating systems. ", "examples": [{"builtin": {"range_high": 100000000, "range_low": 90000001}, "idmap_domain": {"idmap_backend": "RID", "name": "MYDOMAIN", "range_high": 200000000, "range_low": 100000001}}], "_name_": "idmap", "_required_": false, "_attrs_order_": ["builtin", "idmap_domain"]}, "site": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The Active Directory site where the TrueNAS server is located. TrueNAS detects this automatically during the domain join process. ", "title": "site", "_name_": "site", "_required_": false}, "computer_account_ou": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Use this setting to override the default organizational unit (OU) in which the TrueNAS computer account is created during the domain join. Use it to set a custom location for TrueNAS computer accounts. ", "examples": ["TRUENAS_SERVERS/NYC"], "title": "computer_account_ou", "_name_": "computer_account_ou", "_required_": false}, "use_default_domain": {"default": false, "description": "Controls if the system removes the domain prefix from Active Directory user and group names. If enabled, users appear as \"administrator\" instead of \"EXAMPLE\\administrator\". In most cases, disable this (default) to avoid name conflicts between Active Directory and local accounts. ", "title": "use_default_domain", "type": "boolean", "_name_": "use_default_domain", "_required_": false}, "enable_trusted_domains": {"default": false, "description": "Enable support for trusted domains. If True, then separate trusted domain configuration must be set for all trusted domains. ", "title": "enable_trusted_domains", "type": "boolean", "_name_": "enable_trusted_domains", "_required_": false}, "trusted_domains": {"default": [], "description": "Configuration for trusted domains. ", "examples": [{"idmap_backend": "RID", "name": "BROOK", "range_high": 300000000, "range_low": 200000001}, {"idmap_backend": "RID", "name": "DARVO", "range_high": 400000000, "range_low": 300000001}], "items": [{"discriminator": {"mapping": {"AD": "#/$defs/AD_Idmap", "LDAP": "#/$defs/LDAP_Idmap", "RFC2307": "#/$defs/RFC2307_Idmap", "RID": "#/$defs/RID_Idmap"}, "propertyName": "idmap_backend"}, "oneOf": [{"additionalProperties": false, "description": "The AD backend reads UID and GID mappings from an Active Directory server that uses pre-existing RFC2307 / SFU schema extensions. The administrator must add mappings for users and groups in Active Directory before use.\n\nNOTE: these schema extensions are not present by default in Active Directory.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "AD", "description": "Idmap backend type identifier for Active Directory RFC2307 schema integration.", "enum": ["AD"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "schema_mode": {"description": "The schema mode the idmap backend uses to query Active Directory for user and group information. The RFC2307 schema applies to Windows Server 2003 R2 and newer. The Services for Unix (SFU) schema applies to versions before Windows Server 2003 R2. ", "enum": ["RFC2307", "SFU", "SFU20"], "title": "schema_mode", "type": "string", "_name_": "schema_mode", "_required_": true}, "unix_primary_group": {"default": false, "description": "Defines if the user's primary group is fetched from SFU attributes or the Active Directory primary group. If True, the TrueNAS server uses the `gidNumber` LDAP attribute. If False, it uses the `primaryGroupID` LDAP attribute.\n ", "title": "unix_primary_group", "type": "boolean", "_name_": "unix_primary_group", "_required_": false}, "unix_nss_info": {"default": false, "description": "If True, the login shell and home directory are retrieved from LDAP attributes. If False, or if the Active Directory LDAP entry lacks SFU attributes, the home directory defaults to `/var/empty`. ", "title": "unix_nss_info", "type": "boolean", "_name_": "unix_nss_info", "_required_": false}}, "required": ["idmap_backend", "schema_mode"], "title": "AD_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "schema_mode", "unix_primary_group", "unix_nss_info"]}, {"additionalProperties": false, "description": "The LDAP backend reads and writes UID / GID mapping tables from an external LDAP server. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "LDAP", "description": "Idmap backend type identifier for external LDAP server mapping.", "enum": ["LDAP"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_base_dn": {"description": "Directory base suffix to use for mapping UIDs and GIDs to SIDs. ", "title": "ldap_base_dn", "type": "string", "_name_": "ldap_base_dn", "_required_": true}, "ldap_user_dn": {"description": "Defines the user DN to be used for authentication to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "ldap_url": {"description": "LDAP server to use for the idmap entries. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "readonly": {"default": true, "description": "If readonly is set to True then TrueNAS will not attempt to write new idmap entries. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url"], "title": "LDAP_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_base_dn", "ldap_user_dn", "ldap_user_dn_password REDACTED, "ldap_url", "readonly", "validate_certificates"]}, {"additionalProperties": false, "description": "The RFC2307 backend reads ID mappings from RFC2307 attributes on a standalone LDAP server. This backend is read-only. Use the `AD` idmap backend if the server is an Active Directory domain controller. ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RFC2307", "description": "Idmap backend type identifier for RFC2307 LDAP attribute mapping.", "enum": ["RFC2307"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "ldap_url": {"description": "The LDAP URL used to access the LDAP server. ", "title": "ldap_url", "type": "string", "_name_": "ldap_url", "_required_": true}, "ldap_user_dn": {"description": "Defines the DN used to authenticate to the LDAP server. ", "title": "ldap_user_dn", "type": "string", "_name_": "ldap_user_dn", "_required_": true}, "ldap_user_dn_password REDACTED, "minLength": 1, "title": "ldap_user_dn_password REDACTED, "type": "string", "_name_": "ldap_user_dn_password REDACTED, "_required_": true}, "bind_path_user": {"description": "The search base that contains user objects in the LDAP server. ", "title": "bind_path_user", "type": "string", "_name_": "bind_path_user", "_required_": true}, "bind_path_group": {"description": "The search base that contains group objects in the LDAP server. ", "title": "bind_path_group", "type": "string", "_name_": "bind_path_group", "_required_": true}, "user_cn": {"default": false, "description": "If set, query the CN attribute instead of the UID attribute for the user name in LDAP. ", "title": "user_cn", "type": "boolean", "_name_": "user_cn", "_required_": false}, "ldap_realm": {"default": false, "description": "Append @realm to the CN for groups. Also append it to users if user_cn is specified. ", "title": "ldap_realm", "type": "boolean", "_name_": "ldap_realm", "_required_": false}, "validate_certificates": {"default": true, "description": "If False, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group"], "title": "RFC2307_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "ldap_url", "ldap_user_dn", "ldap_user_dn_password REDACTED, "bind_path_user", "bind_path_group", "user_cn", "ldap_realm", "validate_certificates"]}, {"additionalProperties": false, "description": "The RID backend uses an algorithm to map UIDs and GIDs to SIDs. It determines the UID or GID by adding the RID value from the Windows Account SID to the base value in range_low. RID values in an Active Directory domain can be large, especially as the domain ages. Administrators should configure a range large enough to cover the current RID values assigned by the RID master. One way to do this is to check the RID of a recently created account in Active Directory. For example, if the RID is 500000, the range must include at least 500000 Unix IDs (for example, 1000000 to 2000000). ", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "RID", "description": "Idmap backend type identifier for RID-based algorithmic mapping.", "enum": ["RID"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "sssd_compat": {"default": false, "description": "Generate an idmap low range using the algorithm from SSSD. This works if the domain uses only a single SSSD idmap slice, and is sufficient if the domain uses only a single SSSD idmap slice. ", "title": "sssd_compat", "type": "boolean", "_name_": "sssd_compat", "_required_": false}}, "required": ["idmap_backend"], "title": "RID_Idmap", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "sssd_compat"]}]}], "title": "trusted_domains", "type": "array", "_name_": "trusted_domains", "_required_": false}}, "required": ["service_type", "hostname", "domain"], "title": "ActiveDirectoryConfig", "type": "object", "_attrs_order_": ["service_type", "hostname", "domain", "idmap", "site", "computer_account_ou", "use_default_domain", "enable_trusted_domains", "trusted_domains"]}, {"additionalProperties": false, "properties": {"service_type": {"const": "IPA", "enum": ["IPA"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "target_server": {"description": "The name of the IPA server that TrueNAS uses to build URLs when it joins or leaves the IPA domain. Example: \"ipa.example.internal\". ", "minLength": 1, "title": "target_server", "type": "string", "_name_": "target_server", "_required_": true}, "hostname": {"description": "Hostname of TrueNAS server to register in IPA during the join process. Example: \"truenasnyc\". ", "minLength": 1, "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "The domain of the IPA server. Example \"ipa.internal\". ", "minLength": 1, "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "basedn": {"description": "The base DN to use when performing LDAP operations. Example: \"dc=example,dc=internal\". ", "title": "basedn", "type": "string", "_name_": "basedn", "_required_": true}, "smb_domain": {"anyOf": [{"additionalProperties": false, "description": "This is a special idmap backend used when TrueNAS joins an IPA domain. The remote IPA server provides the configuration information during the domain join process.", "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Short name for the domain. This should match the NetBIOS domain name for Active Directory domains. It may be null if the domain is configured as the base idmap for Active Directory. ", "examples": ["IXDOM"], "title": "name", "_name_": "name", "_required_": false}, "range_low": {"default": 100000001, "description": "The lowest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_low", "type": "integer", "_name_": "range_low", "_required_": false}, "range_high": {"default": 200000000, "description": "The highest UID or GID that the idmap backend can assign. ", "maximum": 2147000000, "minimum": 1000, "title": "range_high", "type": "integer", "_name_": "range_high", "_required_": false}, "idmap_backend": {"const": "SSS", "description": "Idmap backend type identifier for System Security Services Daemon integration.", "enum": ["SSS"], "title": "idmap_backend", "type": "string", "_name_": "idmap_backend", "_required_": true}, "domain_name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the SMB domain as defined in the IPA configuration for the IPA domain to which TrueNAS is joined. ", "examples": ["IXDOM.INTERNAL"], "title": "domain_name", "_name_": "domain_name", "_required_": false}, "domain_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The domain SID for the IPA domain to which TrueNAS is joined. ", "examples": ["S-1-5-21-3696504179-2855309571-923743039"], "title": "domain_sid", "_name_": "domain_sid", "_required_": false}}, "required": ["idmap_backend"], "title": "IPA_SMBDomain", "type": "object", "_attrs_order_": ["name", "range_low", "range_high", "idmap_backend", "domain_name", "domain_sid"]}, {"type": "null"}], "default": null, "description": "Settings for the IPA SMB domain. TrueNAS detects these settings during IPA join. Some IPA domains may not include SMB schema configuration. ", "title": "smb_domain", "_name_": "smb_domain", "_required_": false}, "validate_certificates": {"default": true, "description": "If `False`, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}}, "required": ["service_type", "target_server", "hostname", "domain", "basedn"], "title": "IPAConfig", "type": "object", "_attrs_order_": ["service_type", "target_server", "hostname", "domain", "basedn", "smb_domain", "validate_certificates"]}, {"additionalProperties": false, "properties": {"service_type": {"const": "LDAP", "enum": ["LDAP"], "title": "service_type", "type": "string", "_name_": "service_type", "_required_": true}, "server_urls": {"description": "List of LDAP server URIs used for LDAP binds. Each URI must begin with ldap:// or ldaps:// and may use either a DNS name or an IP address. Example: `['ldaps://myldap.domain.internal']`.", "items": [{"type": "string"}], "title": "server_urls", "type": "array", "_name_": "server_urls", "_required_": true}, "basedn": {"description": "The base DN to use when performing LDAP operations. Example: `\"dc=domain,dc=internal\"`. ", "title": "basedn", "type": "string", "_name_": "basedn", "_required_": true}, "starttls": {"default": false, "description": "Establish TLS by transmitting a StartTLS request to the server. ", "title": "starttls", "type": "boolean", "_name_": "starttls", "_required_": false}, "validate_certificates": {"default": true, "description": "If `False`, TrueNAS does not validate certificates from the remote LDAP server. It is better to use valid certificates or import them into the TrueNAS server's trusted certificate store. ", "title": "validate_certificates", "type": "boolean", "_name_": "validate_certificates", "_required_": false}, "schema": {"default": "RFC2307", "description": "The type of LDAP attribute schema that the remote LDAP server uses. ", "enum": ["RFC2307", "RFC2307BIS"], "title": "schema", "type": "string", "_name_": "schema", "_required_": false}, "search_bases": {"additionalProperties": false, "description": "Alternative LDAP search base settings. These settings define where to find user, group, and netgroup entries. If unspecified (the default), TrueNAS uses the `basedn` to find users. groups, and netgroups. Use these settings only if the LDAP server uses a non-standard LDAP schema or if you want to limit the accounts available on TrueNAS. ", "properties": {"base_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP user searches. If null (default) then the `base_dn` is used. ", "title": "base_user", "_name_": "base_user", "_required_": false}, "base_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP group searches. If null (default) then the `base_dn` is used. ", "title": "base_group", "_name_": "base_group", "_required_": false}, "base_netgroup": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional base DN to limit LDAP netgroup searches. If null (default) then the `base_dn` is used. ", "title": "base_netgroup", "_name_": "base_netgroup", "_required_": false}}, "title": "search_bases", "type": "object", "default": {"base_user": null, "base_group": null, "base_netgroup": null}, "_name_": "search_bases", "_required_": false, "_attrs_order_": ["base_user", "base_group", "base_netgroup"]}, "attribute_maps": {"additionalProperties": false, "properties": {"passwd": {"additionalProperties": false, "description": "LDAP attribute mappings for passwd/user entries.", "properties": {"user_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The user entry object class in LDAP. ", "title": "user_object_class", "_name_": "user_object_class", "_required_": false}, "user_name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's login name. ", "title": "user_name", "_name_": "user_name", "_required_": false}, "user_uid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's id. ", "title": "user_uid", "_name_": "user_uid", "_required_": false}, "user_gid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's primary group id. ", "title": "user_gid", "_name_": "user_gid", "_required_": false}, "user_gecos": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's gecos field. ", "title": "user_gecos", "_name_": "user_gecos", "_required_": false}, "user_home_directory": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the user's home directory. ", "title": "user_home_directory", "_name_": "user_home_directory", "_required_": false}, "user_shell": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the path to the user's default shell. ", "title": "user_shell", "_name_": "user_shell", "_required_": false}}, "title": "passwd", "type": "object", "default": {"user_object_class": null, "user_name": null, "user_uid": null, "user_gid": null, "user_gecos": null, "user_home_directory": null, "user_shell": null}, "_name_": "passwd", "_required_": false, "_attrs_order_": ["user_object_class", "user_name", "user_uid", "user_gid", "user_gecos", "user_home_directory", "user_shell"]}, "shadow": {"additionalProperties": false, "description": "LDAP attribute mappings for shadow password REDACTED, "properties": {"shadow_last_change": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (date of the last password REDACTED, "title": "shadow_last_change", "_name_": "shadow_last_change", "_required_": false}, "shadow_min": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (minimum password REDACTED, "title": "shadow_min", "_name_": "shadow_min", "_required_": false}, "shadow_max": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (maximum password REDACTED, "title": "shadow_max", "_name_": "shadow_max", "_required_": false}, "shadow_warning": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (password REDACTED, "title": "shadow_warning", "_name_": "shadow_warning", "_required_": false}, "shadow_inactive": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (password REDACTED, "title": "shadow_inactive", "_name_": "shadow_inactive", "_required_": false}, "shadow_expire": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This parameter contains the name of an LDAP attribute for its shadow(5) counterpart (account expiration date). ", "title": "shadow_expire", "_name_": "shadow_expire", "_required_": false}}, "title": "shadow", "type": "object", "default": {"shadow_last_change": null, "shadow_min": null, "shadow_max": null, "shadow_warning": null, "shadow_inactive": null, "shadow_expire": null}, "_name_": "shadow", "_required_": false, "_attrs_order_": ["shadow_last_change", "shadow_min", "shadow_max", "shadow_warning", "shadow_inactive", "shadow_expire"]}, "group": {"additionalProperties": false, "description": "LDAP attribute mappings for group entries.", "properties": {"group_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP object class for group entries. ", "title": "group_object_class", "_name_": "group_object_class", "_required_": false}, "group_gid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the group's id. ", "title": "group_gid", "_name_": "group_gid", "_required_": false}, "group_member": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the names of the group's members. ", "title": "group_member", "_name_": "group_member", "_required_": false}}, "title": "group", "type": "object", "default": {"group_object_class": null, "group_gid": null, "group_member": null}, "_name_": "group", "_required_": false, "_attrs_order_": ["group_object_class", "group_gid", "group_member"]}, "netgroup": {"additionalProperties": false, "description": "LDAP attribute mappings for netgroup entries.", "properties": {"netgroup_object_class": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP object class for netgroup entries. ", "title": "netgroup_object_class", "_name_": "netgroup_object_class", "_required_": false}, "netgroup_member": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for the netgroup's members. ", "title": "netgroup_member", "_name_": "netgroup_member", "_required_": false}, "netgroup_triple": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The LDAP attribute for netgroup triples (host, user, domain). ", "title": "netgroup_triple", "_name_": "netgroup_triple", "_required_": false}}, "title": "netgroup", "type": "object", "default": {"netgroup_object_class": null, "netgroup_member": null, "netgroup_triple": null}, "_name_": "netgroup", "_required_": false, "_attrs_order_": ["netgroup_object_class", "netgroup_member", "netgroup_triple"]}}, "title": "attribute_maps", "type": "object", "default": {"passwd": {"user_gecos": null, "user_gid": null, "user_home_directory": null, "user_name": null, "user_object_class": null, "user_shell": null, "user_uid": null}, "shadow": {"shadow_expire": null, "shadow_inactive": null, "shadow_last_change": null, "shadow_max": null, "shadow_min": null, "shadow_warning": null}, "group": {"group_gid": null, "group_member": null, "group_object_class": null}, "netgroup": {"netgroup_member": null, "netgroup_object_class": null, "netgroup_triple": null}}, "description": "Optional LDAP attribute mapping for LDAP servers that do not follow RFC2307 or RFC2307BIS. Use this only if the LDAP server is non-standard. ", "_name_": "attribute_maps", "_required_": false, "_attrs_order_": ["passwd", "shadow", "group", "netgroup"]}, "auxiliary_parameters": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Additional paramaters to add to the SSSD configuration.\n\nWARNING: TrueNAS does not check the validity of these parameters. Incorrect values can cause production outages when they are applied or after an operating system upgrade. ", "title": "auxiliary_parameters", "_name_": "auxiliary_parameters", "_required_": false}}, "required": ["service_type", "server_urls", "basedn"], "title": "LDAPConfig", "type": "object", "_attrs_order_": ["service_type", "server_urls", "basedn", "starttls", "validate_certificates", "schema", "search_bases", "attribute_maps", "auxiliary_parameters"]}]}, {"type": "null"}], "default": null, "description": "The service_type specific configuration for the directory sevices plugin. ", "examples": [{"computer_account_ou": "TRUENAS_SERVERS", "domain": "ACME.INTERNAL", "hostname": "TRUENASZ356"}, {"basedn": "dc=ipadom,dc=internal", "domain": "ipadom.internal", "hostname": "TRUENASZ345", "target_server": "ipasrv5.ipadom.internal"}, {"basedn": "dc=ipadom,dc=internal", "server_urls": ["ldap.ipadom.internal"]}], "title": "configuration", "_name_": "configuration", "_required_": false}}, "required": ["id", "service_type", "credential REDACTED, "enable"], "title": "result", "type": "object", "description": "The updated directory services configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "service_type", "credential REDACTED, "enable", "enable_account_cache", "enable_dns_updates", "timeout", "kerberos_realm", "configuration"]}]}, "disk.details": {"description": "Return detailed information for all disks on the system.", "cli_description": "Return detailed information for all disks on the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"join_partitions": {"default": false, "description": "Return all partitions currently written to disk.\n\n**NOTE: This is an expensive operation.**", "title": "join_partitions", "type": "boolean", "_name_": "join_partitions", "_required_": false}, "type": {"default": "BOTH", "description": "* `USED`: Only disks that are IN USE will be returned.\n* `UNUSED`: Only disks that are NOT IN USE are returned.\n* `BOTH`: Used and unused disks will be returned.", "enum": ["USED", "UNUSED", "BOTH"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "title": "data", "type": "object", "description": "Disk query parameters specifying which disks to return and options.", "_name_": "data", "_required_": false, "_attrs_order_": ["join_partitions", "type"]}], "returns": [{"anyOf": [{"items": [{}], "type": "array"}, {"type": "object"}], "description": "Array of disk information or object with disk details depending on query options.", "title": "result", "_name_": "result", "_required_": true}]}, "disk.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DISK_READ", "DISK_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"identifier": {"description": "Unique identifier for the disk device.", "title": "identifier", "type": "string", "_name_": "identifier", "_required_": true}, "name": {"description": "System name of the disk device.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subsystem": {"description": "Storage subsystem type.", "examples": ["SCSI", "ATA"], "title": "subsystem", "type": "string", "_name_": "subsystem", "_required_": true}, "number": {"description": "Numeric identifier assigned to the disk.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "serial": {"description": "Manufacturer serial number of the disk.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "lunid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Logical unit number identifier or `null` if not applicable.", "title": "lunid", "_name_": "lunid", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the disk in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": true}, "description": {"description": "Human-readable description of the disk device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "transfermode": {"description": "Data transfer mode and capabilities of the disk.", "title": "transfermode", "type": "string", "_name_": "transfermode", "_required_": true}, "hddstandby": {"description": "Hard disk standby timer in minutes or `ALWAYS ON` to disable standby.", "enum": ["ALWAYS ON", "5", "10", "20", "30", "60", "120", "180", "240", "300", "330"], "title": "hddstandby", "type": "string", "_name_": "hddstandby", "_required_": true}, "advpowermgmt": {"description": "Advanced power management level or `DISABLED` to turn off power management.", "enum": ["DISABLED", "1", "64", "127", "128", "192", "254"], "title": "advpowermgmt", "type": "string", "_name_": "advpowermgmt", "_required_": true}, "expiretime": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for disk data or `null` if not applicable.", "title": "expiretime", "_name_": "expiretime", "_required_": true}, "model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Manufacturer model name/number of the disk. `null` if not available.", "title": "model", "_name_": "model", "_required_": true}, "rotationrate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Disk rotation speed in RPM or `null` for SSDs and unknown devices.", "title": "rotationrate", "_name_": "rotationrate", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk type classification or `null` if not determined.", "title": "type", "_name_": "type", "_required_": true}, "zfs_guid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ZFS globally unique identifier for this disk or `null` if not used in ZFS.", "title": "zfs_guid", "_name_": "zfs_guid", "_required_": true}, "bus": {"description": "System bus type the disk is connected to.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "devname": {"description": "Device name in the operating system.", "examples": ["/dev/sda"], "title": "devname", "type": "string", "_name_": "devname", "_required_": true}, "enclosure": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "Enclosure number where the disk is located.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "slot": {"description": "Physical slot position within the enclosure.", "title": "slot", "type": "integer", "_name_": "slot", "_required_": true}}, "required": ["number", "slot"], "title": "DiskEntryEnclosure", "type": "object", "_attrs_order_": ["number", "slot"]}, {"type": "null"}], "description": "Physical enclosure information or `null` if not in an enclosure.", "title": "enclosure", "_name_": "enclosure", "_required_": true}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the storage pool this disk belongs to. `null` if not part of any pool.", "title": "pool", "_name_": "pool", "_required_": true}, "passwd": {"description": "Disk encryption password REDACTED, "title": "passwd", "type": "string", "_name_": "passwd", "_required_": false}, "kmip_uid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "KMIP (Key Management Interoperability Protocol) unique identifier or `null`.", "title": "kmip_uid", "_name_": "kmip_uid", "_required_": false}}, "required": ["identifier", "name", "subsystem", "number", "serial", "lunid", "size", "description", "transfermode", "hddstandby", "advpowermgmt", "expiretime", "model", "rotationrate", "type", "zfs_guid", "bus", "devname", "enclosure", "pool"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["identifier", "name", "subsystem", "number", "serial", "lunid", "size", "description", "transfermode", "hddstandby", "advpowermgmt", "expiretime", "model", "rotationrate", "type", "zfs_guid", "bus", "devname", "enclosure", "pool", "passwd", "kmip_uid"]}]}, "disk.get_used": {"description": "Return disks that are in use by any zpool that is currently imported. It will\nalso return disks that are in use by any zpool that is exported.\n\n`join_partitions`: Bool, when True will return all partitions currently written to disk\n NOTE: this is an expensive operation", "cli_description": "Return disks that are in use by any zpool that is currently imported", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"default": false, "description": "Return all partitions currently written to disk.\n\n**NOTE: this is an expensive operation.**", "title": "join_partitions", "type": "boolean", "_name_": "join_partitions", "_required_": false}], "returns": [{"description": "Array of disks that are currently in use by the system.", "items": [{}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "disk.query": {"description": "Query disks.\n\nThe following extra options are supported:\n\n`include_expired` (bool): Also include expired disks (default: false).\n`password REDACTED, "cli_description": "Query disks", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DISK_READ", "DISK_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"identifier": {"description": "Unique identifier for the disk device.", "title": "identifier", "type": "string", "_name_": "identifier", "_required_": false}, "name": {"description": "System name of the disk device.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "subsystem": {"description": "Storage subsystem type.", "examples": ["SCSI", "ATA"], "title": "subsystem", "type": "string", "_name_": "subsystem", "_required_": false}, "number": {"description": "Numeric identifier assigned to the disk.", "title": "number", "type": "integer", "_name_": "number", "_required_": false}, "serial": {"description": "Manufacturer serial number of the disk.", "title": "serial", "type": "string", "_name_": "serial", "_required_": false}, "lunid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Logical unit number identifier or `null` if not applicable.", "title": "lunid", "_name_": "lunid", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the disk in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": false}, "description": {"description": "Human-readable description of the disk device.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "transfermode": {"description": "Data transfer mode and capabilities of the disk.", "title": "transfermode", "type": "string", "_name_": "transfermode", "_required_": false}, "hddstandby": {"description": "Hard disk standby timer in minutes or `ALWAYS ON` to disable standby.", "enum": ["ALWAYS ON", "5", "10", "20", "30", "60", "120", "180", "240", "300", "330"], "title": "hddstandby", "type": "string", "_name_": "hddstandby", "_required_": false}, "advpowermgmt": {"description": "Advanced power management level or `DISABLED` to turn off power management.", "enum": ["DISABLED", "1", "64", "127", "128", "192", "254"], "title": "advpowermgmt", "type": "string", "_name_": "advpowermgmt", "_required_": false}, "expiretime": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for disk data or `null` if not applicable.", "title": "expiretime", "_name_": "expiretime", "_required_": false}, "model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Manufacturer model name/number of the disk. `null` if not available.", "title": "model", "_name_": "model", "_required_": false}, "rotationrate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Disk rotation speed in RPM or `null` for SSDs and unknown devices.", "title": "rotationrate", "_name_": "rotationrate", "_required_": false}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk type classification or `null` if not determined.", "title": "type", "_name_": "type", "_required_": false}, "zfs_guid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ZFS globally unique identifier for this disk or `null` if not used in ZFS.", "title": "zfs_guid", "_name_": "zfs_guid", "_required_": false}, "bus": {"description": "System bus type the disk is connected to.", "title": "bus", "type": "string", "_name_": "bus", "_required_": false}, "devname": {"description": "Device name in the operating system.", "examples": ["/dev/sda"], "title": "devname", "type": "string", "_name_": "devname", "_required_": false}, "enclosure": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "Enclosure number where the disk is located.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "slot": {"description": "Physical slot position within the enclosure.", "title": "slot", "type": "integer", "_name_": "slot", "_required_": true}}, "required": ["number", "slot"], "title": "DiskEntryEnclosure", "type": "object", "_attrs_order_": ["number", "slot"]}, {"type": "null"}], "description": "Physical enclosure information or `null` if not in an enclosure.", "title": "enclosure", "_name_": "enclosure", "_required_": false}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the storage pool this disk belongs to. `null` if not part of any pool.", "title": "pool", "_name_": "pool", "_required_": false}, "passwd": {"description": "Disk encryption password REDACTED, "title": "passwd", "type": "string", "_name_": "passwd", "_required_": false}, "kmip_uid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "KMIP (Key Management Interoperability Protocol) unique identifier or `null`.", "title": "kmip_uid", "_name_": "kmip_uid", "_required_": false}}, "title": "DiskQueryResultItem", "type": "object", "_attrs_order_": ["identifier", "name", "subsystem", "number", "serial", "lunid", "size", "description", "transfermode", "hddstandby", "advpowermgmt", "expiretime", "model", "rotationrate", "type", "zfs_guid", "bus", "devname", "enclosure", "pool", "passwd", "kmip_uid"]}], "type": "array"}, {"additionalProperties": false, "properties": {"identifier": {"description": "Unique identifier for the disk device.", "title": "identifier", "type": "string", "_name_": "identifier", "_required_": false}, "name": {"description": "System name of the disk device.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "subsystem": {"description": "Storage subsystem type.", "examples": ["SCSI", "ATA"], "title": "subsystem", "type": "string", "_name_": "subsystem", "_required_": false}, "number": {"description": "Numeric identifier assigned to the disk.", "title": "number", "type": "integer", "_name_": "number", "_required_": false}, "serial": {"description": "Manufacturer serial number of the disk.", "title": "serial", "type": "string", "_name_": "serial", "_required_": false}, "lunid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Logical unit number identifier or `null` if not applicable.", "title": "lunid", "_name_": "lunid", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the disk in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": false}, "description": {"description": "Human-readable description of the disk device.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "transfermode": {"description": "Data transfer mode and capabilities of the disk.", "title": "transfermode", "type": "string", "_name_": "transfermode", "_required_": false}, "hddstandby": {"description": "Hard disk standby timer in minutes or `ALWAYS ON` to disable standby.", "enum": ["ALWAYS ON", "5", "10", "20", "30", "60", "120", "180", "240", "300", "330"], "title": "hddstandby", "type": "string", "_name_": "hddstandby", "_required_": false}, "advpowermgmt": {"description": "Advanced power management level or `DISABLED` to turn off power management.", "enum": ["DISABLED", "1", "64", "127", "128", "192", "254"], "title": "advpowermgmt", "type": "string", "_name_": "advpowermgmt", "_required_": false}, "expiretime": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for disk data or `null` if not applicable.", "title": "expiretime", "_name_": "expiretime", "_required_": false}, "model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Manufacturer model name/number of the disk. `null` if not available.", "title": "model", "_name_": "model", "_required_": false}, "rotationrate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Disk rotation speed in RPM or `null` for SSDs and unknown devices.", "title": "rotationrate", "_name_": "rotationrate", "_required_": false}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk type classification or `null` if not determined.", "title": "type", "_name_": "type", "_required_": false}, "zfs_guid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ZFS globally unique identifier for this disk or `null` if not used in ZFS.", "title": "zfs_guid", "_name_": "zfs_guid", "_required_": false}, "bus": {"description": "System bus type the disk is connected to.", "title": "bus", "type": "string", "_name_": "bus", "_required_": false}, "devname": {"description": "Device name in the operating system.", "examples": ["/dev/sda"], "title": "devname", "type": "string", "_name_": "devname", "_required_": false}, "enclosure": {"anyOf": [{}, {"type": "null"}], "description": "Physical enclosure information or `null` if not in an enclosure.", "title": "enclosure", "_name_": "enclosure", "_required_": false}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the storage pool this disk belongs to. `null` if not part of any pool.", "title": "pool", "_name_": "pool", "_required_": false}, "passwd": {"description": "Disk encryption password REDACTED, "title": "passwd", "type": "string", "_name_": "passwd", "_required_": false}, "kmip_uid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "KMIP (Key Management Interoperability Protocol) unique identifier or `null`.", "title": "kmip_uid", "_name_": "kmip_uid", "_required_": false}}, "title": "DiskQueryResultItem", "type": "object", "_attrs_order_": ["identifier", "name", "subsystem", "number", "serial", "lunid", "size", "description", "transfermode", "hddstandby", "advpowermgmt", "expiretime", "model", "rotationrate", "type", "zfs_guid", "bus", "devname", "enclosure", "pool", "passwd", "kmip_uid"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "disk.temperature_agg": {"description": "Returns min/max/avg temperature for `names` disks for the last `days` days", "cli_description": "Returns min/max/avg temperature for `names` disks for the last `days` days", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "Array of disk names to retrieve temperature aggregates for.", "items": [{"type": "string"}], "title": "names", "type": "array", "_name_": "names", "_required_": true}, {"default": 7, "description": "Number of days to aggregate temperature data over.", "title": "days", "type": "integer", "_name_": "days", "_required_": false}], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"min": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "description": "Minimum temperature recorded during the time period or `null`.", "title": "min", "_name_": "min", "_required_": true}, "max": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "description": "Maximum temperature recorded during the time period or `null`.", "title": "max", "_name_": "max", "_required_": true}, "avg": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "null"}], "description": "Average temperature during the time period or `null`.", "title": "avg", "_name_": "avg", "_required_": true}}, "required": ["min", "max", "avg"], "title": "DiskTemperatureAggEntry", "type": "object", "_attrs_order_": ["min", "max", "avg"]}, "description": "Object mapping disk names to their aggregated temperature statistics.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "disk.temperature_alerts": {"description": "Returns existing temperature alerts for specified disks.", "cli_description": "Returns existing temperature alerts for specified disks", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "Array of disk names to check for temperature-related alerts.", "items": [{"type": "string"}], "title": "names", "type": "array", "_name_": "names", "_required_": true}], "returns": [{"description": "Array of active temperature alerts for the specified disks.", "items": [{"additionalProperties": false, "properties": {"uuid": {"description": "Unique identifier for the alert.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}, "source": {"description": "Source component that generated the alert.", "title": "source", "type": "string", "_name_": "source", "_required_": true}, "klass": {"description": "Alert class identifier for categorization.", "title": "klass", "type": "string", "_name_": "klass", "_required_": true}, "args": {"description": "Arguments and parameters specific to the alert type.", "title": "args", "_name_": "args", "_required_": true}, "node": {"description": "Node identifier in HA systems or hostname for single-node systems.", "title": "node", "type": "string", "_name_": "node", "_required_": true}, "key": {"description": "Unique key used for alert deduplication and identification.", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "datetime": {"description": "Timestamp when the alert was first created.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "last_occurrence": {"description": "Timestamp of the most recent occurrence of this alert.", "format": "date-time", "title": "last_occurrence", "type": "string", "_name_": "last_occurrence", "_required_": true}, "dismissed": {"description": "Whether the alert has been manually dismissed by a user.", "title": "dismissed", "type": "boolean", "_name_": "dismissed", "_required_": true}, "mail": {"description": "Email notification configuration and status for this alert.", "title": "mail", "_name_": "mail", "_required_": true}, "text": {"description": "Human-readable description of the alert.", "title": "text", "type": "string", "_name_": "text", "_required_": true}, "id": {"description": "Alert identifier used for API operations.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "level": {"description": "Severity level of the alert (INFO, WARNING, ERROR, etc.).", "title": "level", "type": "string", "_name_": "level", "_required_": true}, "formatted": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Formatted alert message with HTML.", "title": "formatted", "_name_": "formatted", "_required_": true}, "one_shot": {"description": "Whether this alert will not be dismissed automatically.", "title": "one_shot", "type": "boolean", "_name_": "one_shot", "_required_": true}}, "required": ["uuid", "source", "klass", "args", "node", "key", "datetime", "last_occurrence", "dismissed", "mail", "text", "id", "level", "formatted", "one_shot"], "title": "Alert", "type": "object", "_attrs_order_": ["uuid", "source", "klass", "args", "node", "key", "datetime", "last_occurrence", "dismissed", "mail", "text", "id", "level", "formatted", "one_shot"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "disk.temperatures": {"description": "Returns disk temperatures for disks in degrees celsius.\n\nNOTE:\n Disk temperatures are not retrieved more than\n once every 5 minutes.", "cli_description": "Returns disk temperatures for disks in degrees celsius", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "List of names of disks to retrieve temperature information. Name should be in the form of \"sda\", \"nvme0n1\", etc.", "items": [{"type": "string"}], "title": "name", "type": "array", "_name_": "name", "_required_": false}, {"default": false, "description": "Include the temperature thresholds as reported by the disk (i.e. the critical temp).", "title": "include_thresholds", "type": "boolean", "_name_": "include_thresholds", "_required_": false}], "returns": [{"description": "Object mapping disk names to their current temperature information.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "disk.update": {"description": "Update disk of `id`.", "cli_description": "Update disk of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DISK_WRITE"], "accepts": [{"description": "Disk identifier to update.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"number": {"description": "Numeric identifier assigned to the disk.", "title": "number", "type": "integer", "_name_": "number", "_required_": false}, "lunid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Logical unit number identifier or `null` if not applicable.", "title": "lunid", "_name_": "lunid", "_required_": false}, "description": {"description": "Human-readable description of the disk device.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "hddstandby": {"description": "Hard disk standby timer in minutes or `ALWAYS ON` to disable standby.", "enum": ["ALWAYS ON", "5", "10", "20", "30", "60", "120", "180", "240", "300", "330"], "title": "hddstandby", "type": "string", "_name_": "hddstandby", "_required_": false}, "advpowermgmt": {"description": "Advanced power management level or `DISABLED` to turn off power management.", "enum": ["DISABLED", "1", "64", "127", "128", "192", "254"], "title": "advpowermgmt", "type": "string", "_name_": "advpowermgmt", "_required_": false}, "bus": {"description": "System bus type the disk is connected to.", "title": "bus", "type": "string", "_name_": "bus", "_required_": false}, "enclosure": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "Enclosure number where the disk is located.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "slot": {"description": "Physical slot position within the enclosure.", "title": "slot", "type": "integer", "_name_": "slot", "_required_": true}}, "required": ["number", "slot"], "title": "DiskEntryEnclosure", "type": "object", "_attrs_order_": ["number", "slot"]}, {"type": "null"}], "description": "Physical enclosure information or `null` if not in an enclosure.", "title": "enclosure", "_name_": "enclosure", "_required_": false}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the storage pool this disk belongs to. `null` if not part of any pool.", "title": "pool", "_name_": "pool", "_required_": false}, "passwd": {"description": "Disk encryption password REDACTED, "title": "passwd", "type": "string", "_name_": "passwd", "_required_": false}}, "title": "data", "type": "object", "description": "Updated disk configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["number", "lunid", "description", "hddstandby", "advpowermgmt", "bus", "enclosure", "pool", "passwd"]}], "returns": [{"additionalProperties": false, "properties": {"identifier": {"description": "Unique identifier for the disk device.", "title": "identifier", "type": "string", "_name_": "identifier", "_required_": true}, "name": {"description": "System name of the disk device.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subsystem": {"description": "Storage subsystem type.", "examples": ["SCSI", "ATA"], "title": "subsystem", "type": "string", "_name_": "subsystem", "_required_": true}, "number": {"description": "Numeric identifier assigned to the disk.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "serial": {"description": "Manufacturer serial number of the disk.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "lunid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Logical unit number identifier or `null` if not applicable.", "title": "lunid", "_name_": "lunid", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the disk in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": true}, "description": {"description": "Human-readable description of the disk device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "transfermode": {"description": "Data transfer mode and capabilities of the disk.", "title": "transfermode", "type": "string", "_name_": "transfermode", "_required_": true}, "hddstandby": {"description": "Hard disk standby timer in minutes or `ALWAYS ON` to disable standby.", "enum": ["ALWAYS ON", "5", "10", "20", "30", "60", "120", "180", "240", "300", "330"], "title": "hddstandby", "type": "string", "_name_": "hddstandby", "_required_": true}, "advpowermgmt": {"description": "Advanced power management level or `DISABLED` to turn off power management.", "enum": ["DISABLED", "1", "64", "127", "128", "192", "254"], "title": "advpowermgmt", "type": "string", "_name_": "advpowermgmt", "_required_": true}, "expiretime": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Expiration timestamp for disk data or `null` if not applicable.", "title": "expiretime", "_name_": "expiretime", "_required_": true}, "model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Manufacturer model name/number of the disk. `null` if not available.", "title": "model", "_name_": "model", "_required_": true}, "rotationrate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Disk rotation speed in RPM or `null` for SSDs and unknown devices.", "title": "rotationrate", "_name_": "rotationrate", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk type classification or `null` if not determined.", "title": "type", "_name_": "type", "_required_": true}, "zfs_guid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ZFS globally unique identifier for this disk or `null` if not used in ZFS.", "title": "zfs_guid", "_name_": "zfs_guid", "_required_": true}, "bus": {"description": "System bus type the disk is connected to.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "devname": {"description": "Device name in the operating system.", "examples": ["/dev/sda"], "title": "devname", "type": "string", "_name_": "devname", "_required_": true}, "enclosure": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "Enclosure number where the disk is located.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "slot": {"description": "Physical slot position within the enclosure.", "title": "slot", "type": "integer", "_name_": "slot", "_required_": true}}, "required": ["number", "slot"], "title": "DiskEntryEnclosure", "type": "object", "_attrs_order_": ["number", "slot"]}, {"type": "null"}], "description": "Physical enclosure information or `null` if not in an enclosure.", "title": "enclosure", "_name_": "enclosure", "_required_": true}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the storage pool this disk belongs to. `null` if not part of any pool.", "title": "pool", "_name_": "pool", "_required_": true}, "passwd": {"description": "Disk encryption password REDACTED, "title": "passwd", "type": "string", "_name_": "passwd", "_required_": false}, "kmip_uid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "KMIP (Key Management Interoperability Protocol) unique identifier or `null`.", "title": "kmip_uid", "_name_": "kmip_uid", "_required_": false}}, "required": ["identifier", "name", "subsystem", "number", "serial", "lunid", "size", "description", "transfermode", "hddstandby", "advpowermgmt", "expiretime", "model", "rotationrate", "type", "zfs_guid", "bus", "devname", "enclosure", "pool"], "title": "result", "type": "object", "description": "The updated disk configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["identifier", "name", "subsystem", "number", "serial", "lunid", "size", "description", "transfermode", "hddstandby", "advpowermgmt", "expiretime", "model", "rotationrate", "type", "zfs_guid", "bus", "devname", "enclosure", "pool", "passwd", "kmip_uid"]}]}, "disk.wipe": {"description": "Performs a wipe of a disk `dev`.", "cli_description": "Performs a wipe of a disk `dev`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DISK_WRITE"], "accepts": [{"description": "The device to perform the disk wipe operation on. May be passed as /dev/sda or just sda.", "minLength": 1, "title": "dev", "type": "string", "_name_": "dev", "_required_": true}, {"description": "* QUICK: Write zeros to the first and last 32MB of device.\n* FULL: Write whole disk with zeros.\n* FULL_RANDOM: Write whole disk with random bytes.", "enum": ["QUICK", "FULL", "FULL_RANDOM"], "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, {"default": true, "description": "Synchronize the device with the database.", "title": "synccache", "type": "boolean", "_name_": "synccache", "_required_": false}], "returns": [{"description": "Returns `null` when the disk wipe operation is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "dns.query": {"description": "Query Name Servers with `query-filters` and `query-options`.", "cli_description": "Query Name Servers with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"nameserver": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP address of the DNS nameserver to query.", "title": "nameserver", "_name_": "nameserver", "_required_": false}}, "title": "DNSQueryItemQueryResultItem", "type": "object", "_attrs_order_": ["nameserver"]}], "type": "array"}, {"additionalProperties": false, "properties": {"nameserver": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP address of the DNS nameserver to query.", "title": "nameserver", "_name_": "nameserver", "_required_": false}}, "title": "DNSQueryItemQueryResultItem", "type": "object", "_attrs_order_": ["nameserver"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "docker.backup": {"description": "Create a backup of existing apps.\n\nThis creates a backup of existing apps on the same pool in which docker is initialized.", "cli_description": "Create a backup of existing apps", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DOCKER_WRITE"], "accepts": [{"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name for the backup or `null` to generate a timestamp-based name.", "title": "backup_name", "_name_": "backup_name", "_required_": false}], "returns": [{"description": "Name of the created backup.", "minLength": 1, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "docker.backup_to_pool": {"description": "Create a backup of existing apps on `target_pool`.\n\nThis creates a backup of existing apps on the `target_pool` specified. If this is executed multiple times,\nin the next iteration it will incrementally backup the apps that have changed since the last backup.\n\nNote: This will stop the docker service (which means current active apps will be stopped) and\nthen start it again after snapshot has been taken of the current apps dataset.", "cli_description": "Create a backup of existing apps on `target_pool`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DOCKER_WRITE"], "accepts": [{"description": "Name of the storage pool to backup Docker data to.", "minLength": 1, "title": "target_pool", "type": "string", "_name_": "target_pool", "_required_": true}], "returns": [{"description": "Returns `null` when the pool backup is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "docker.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_READ", "DOCKER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Docker configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enable_image_updates": {"description": "Whether automatic Docker image updates are enabled.", "title": "enable_image_updates", "type": "boolean", "_name_": "enable_image_updates", "_required_": true}, "dataset": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "ZFS dataset used for Docker data storage or `null`.", "title": "dataset", "_name_": "dataset", "_required_": true}, "pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Storage pool used for Docker or `null` if not configured.", "title": "pool", "_name_": "pool", "_required_": true}, "nvidia": {"description": "Whether NVIDIA GPU support is enabled for containers.", "title": "nvidia", "type": "boolean", "_name_": "nvidia", "_required_": true}, "address_pools": {"description": "Array of network address pools for container networking.", "items": [{"type": "object"}], "title": "address_pools", "type": "array", "_name_": "address_pools", "_required_": true}, "cidr_v6": {"description": "IPv6 CIDR block for Docker container networking.", "title": "cidr_v6", "type": "string", "_name_": "cidr_v6", "_required_": true}, "secure_registry_mirrors": {"description": "Array of secure (HTTPS) registry mirror URLs.", "items": [{"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "title": "secure_registry_mirrors", "type": "array", "_name_": "secure_registry_mirrors", "_required_": true}, "insecure_registry_mirrors": {"description": "Array of insecure (HTTP) registry mirror URLs.", "items": [{"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "title": "insecure_registry_mirrors", "type": "array", "_name_": "insecure_registry_mirrors", "_required_": true}}, "required": ["id", "enable_image_updates", "dataset", "pool", "nvidia", "address_pools", "cidr_v6", "secure_registry_mirrors", "insecure_registry_mirrors"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enable_image_updates", "dataset", "pool", "nvidia", "address_pools", "cidr_v6", "secure_registry_mirrors", "insecure_registry_mirrors"]}]}, "docker.delete_backup": {"description": "Delete `backup_name` app backup.", "cli_description": "Delete `backup_name` app backup", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_WRITE"], "accepts": [{"description": "Name of the backup to delete.", "minLength": 1, "title": "backup_name", "type": "string", "_name_": "backup_name", "_required_": true}], "returns": [{"description": "Returns `null` when the backup is successfully deleted.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "docker.list_backups": {"description": "List existing app backups.", "cli_description": "List existing app backups", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_READ", "DOCKER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"name": {"description": "Name of the backup.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "apps": {"description": "Array of applications included in this backup.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier of the application.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the application.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "state": {"description": "Current running state of the application.", "minLength": 1, "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["id", "name", "state"], "title": "AppInfo", "type": "object", "_attrs_order_": ["id", "name", "state"]}], "title": "apps", "type": "array", "_name_": "apps", "_required_": true}, "snapshot_name": {"description": "ZFS snapshot name associated with this backup.", "minLength": 1, "title": "snapshot_name", "type": "string", "_name_": "snapshot_name", "_required_": true}, "created_on": {"description": "Timestamp when the backup was created.", "minLength": 1, "title": "created_on", "type": "string", "_name_": "created_on", "_required_": true}, "backup_path": {"description": "Filesystem path where the backup is stored.", "minLength": 1, "title": "backup_path", "type": "string", "_name_": "backup_path", "_required_": true}}, "required": ["name", "apps", "snapshot_name", "created_on", "backup_path"], "title": "BackupInfo", "type": "object", "_attrs_order_": ["name", "apps", "snapshot_name", "created_on", "backup_path"]}, "title": "result", "type": "object", "description": "Object mapping backup names to their detailed information.", "_name_": "result", "_required_": true}]}, "docker.nvidia_present": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_READ", "DOCKER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Returns `true` if NVIDIA GPU hardware is present and supported, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "docker.restore_backup": {"description": "Restore a backup of existing apps.", "cli_description": "Restore a backup of existing apps", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DOCKER_WRITE"], "accepts": [{"description": "Name of the backup to restore.", "minLength": 1, "title": "backup_name", "type": "string", "_name_": "backup_name", "_required_": true}], "returns": [{"description": "Returns `null` when the backup restore is successfully started.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "docker.status": {"description": "Returns the status of the docker service.", "cli_description": "Returns the status of the docker service", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_READ", "DOCKER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"description": {"description": "Human-readable description of the current Docker service status.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "status": {"description": "Current state of the Docker service.", "enum": ["PENDING", "RUNNING", "STOPPED", "INITIALIZING", "STOPPING", "UNCONFIGURED", "FAILED", "MIGRATING", "MIGRATION_FAILED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}}, "required": ["description", "status"], "title": "result", "type": "object", "description": "Current Docker service status information.", "_name_": "result", "_required_": true, "_attrs_order_": ["description", "status"]}]}, "docker.update": {"description": "Update Docker service configuration.", "cli_description": "Update Docker service configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DOCKER_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enable_image_updates": {"description": "Whether automatic Docker image updates are enabled.", "title": "enable_image_updates", "type": "boolean", "_name_": "enable_image_updates", "_required_": false}, "pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Storage pool used for Docker or `null` if not configured.", "title": "pool", "_name_": "pool", "_required_": false}, "nvidia": {"description": "Whether NVIDIA GPU support is enabled for containers.", "title": "nvidia", "type": "boolean", "_name_": "nvidia", "_required_": false}, "address_pools": {"description": "Array of network address pools for container networking.", "items": [{"additionalProperties": false, "properties": {"base": {"description": "Base network address with prefix for the pool.", "format": "ipvanyinterface", "title": "base", "type": "string", "_name_": "base", "_required_": true}, "size": {"description": "Subnet size for networks allocated from this pool.", "minimum": 1, "title": "size", "type": "integer", "_name_": "size", "_required_": true}}, "required": ["base", "size"], "title": "AddressPool", "type": "object", "_attrs_order_": ["base", "size"]}], "title": "address_pools", "type": "array", "_name_": "address_pools", "_required_": false}, "cidr_v6": {"description": "IPv6 CIDR block for Docker container networking.", "format": "ipvanyinterface", "title": "cidr_v6", "type": "string", "_name_": "cidr_v6", "_required_": false}, "secure_registry_mirrors": {"description": "Array of secure (HTTPS) registry mirror URLs.", "items": [{"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "title": "secure_registry_mirrors", "type": "array", "_name_": "secure_registry_mirrors", "_required_": false}, "insecure_registry_mirrors": {"description": "Array of insecure (HTTP) registry mirror URLs.", "items": [{"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "title": "insecure_registry_mirrors", "type": "array", "_name_": "insecure_registry_mirrors", "_required_": false}, "migrate_applications": {"description": "Whether to migrate existing applications when changing pools.", "title": "migrate_applications", "type": "boolean", "_name_": "migrate_applications", "_required_": false}}, "title": "docker_update", "type": "object", "description": "DockerUpdateArgs parameters.", "_name_": "docker_update", "_required_": true, "_attrs_order_": ["enable_image_updates", "pool", "nvidia", "address_pools", "cidr_v6", "secure_registry_mirrors", "insecure_registry_mirrors", "migrate_applications"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Docker configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enable_image_updates": {"description": "Whether automatic Docker image updates are enabled.", "title": "enable_image_updates", "type": "boolean", "_name_": "enable_image_updates", "_required_": true}, "dataset": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "ZFS dataset used for Docker data storage or `null`.", "title": "dataset", "_name_": "dataset", "_required_": true}, "pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Storage pool used for Docker or `null` if not configured.", "title": "pool", "_name_": "pool", "_required_": true}, "nvidia": {"description": "Whether NVIDIA GPU support is enabled for containers.", "title": "nvidia", "type": "boolean", "_name_": "nvidia", "_required_": true}, "address_pools": {"description": "Array of network address pools for container networking.", "items": [{"type": "object"}], "title": "address_pools", "type": "array", "_name_": "address_pools", "_required_": true}, "cidr_v6": {"description": "IPv6 CIDR block for Docker container networking.", "title": "cidr_v6", "type": "string", "_name_": "cidr_v6", "_required_": true}, "secure_registry_mirrors": {"description": "Array of secure (HTTPS) registry mirror URLs.", "items": [{"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "title": "secure_registry_mirrors", "type": "array", "_name_": "secure_registry_mirrors", "_required_": true}, "insecure_registry_mirrors": {"description": "Array of insecure (HTTP) registry mirror URLs.", "items": [{"format": "uri", "maxLength": 2083, "minLength": 1, "type": "string"}], "title": "insecure_registry_mirrors", "type": "array", "_name_": "insecure_registry_mirrors", "_required_": true}}, "required": ["id", "enable_image_updates", "dataset", "pool", "nvidia", "address_pools", "cidr_v6", "secure_registry_mirrors", "insecure_registry_mirrors"], "title": "result", "type": "object", "description": "The updated Docker configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enable_image_updates", "dataset", "pool", "nvidia", "address_pools", "cidr_v6", "secure_registry_mirrors", "insecure_registry_mirrors"]}]}, "docker.network.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_READ", "DOCKER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "title": "id", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"ipam": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "IP Address Management configuration for the network or `null`.", "title": "ipam", "_name_": "ipam", "_required_": true}, "labels": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Metadata labels attached to the network or `null`.", "title": "labels", "_name_": "labels", "_required_": true}, "created": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Timestamp when the network was created or `null`.", "title": "created", "_name_": "created", "_required_": true}, "driver": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network driver type (bridge, host, overlay, etc.) or `null`.", "title": "driver", "_name_": "driver", "_required_": true}, "id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Full network identifier or `null`.", "title": "id", "_name_": "id", "_required_": true}, "name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Human-readable name of the network or `null`.", "title": "name", "_name_": "name", "_required_": true}, "scope": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network scope (local, global, swarm) or `null`.", "title": "scope", "_name_": "scope", "_required_": true}, "short_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Shortened network identifier or `null`.", "title": "short_id", "_name_": "short_id", "_required_": true}}, "required": ["ipam", "labels", "created", "driver", "id", "name", "scope", "short_id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["ipam", "labels", "created", "driver", "id", "name", "scope", "short_id"]}]}, "docker.network.query": {"description": "Query all docker networks", "cli_description": "Query all docker networks", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DOCKER_READ", "DOCKER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"ipam": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "IP Address Management configuration for the network or `null`.", "title": "ipam", "_name_": "ipam", "_required_": false}, "labels": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Metadata labels attached to the network or `null`.", "title": "labels", "_name_": "labels", "_required_": false}, "created": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Timestamp when the network was created or `null`.", "title": "created", "_name_": "created", "_required_": false}, "driver": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network driver type (bridge, host, overlay, etc.) or `null`.", "title": "driver", "_name_": "driver", "_required_": false}, "id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Full network identifier or `null`.", "title": "id", "_name_": "id", "_required_": false}, "name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Human-readable name of the network or `null`.", "title": "name", "_name_": "name", "_required_": false}, "scope": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network scope (local, global, swarm) or `null`.", "title": "scope", "_name_": "scope", "_required_": false}, "short_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Shortened network identifier or `null`.", "title": "short_id", "_name_": "short_id", "_required_": false}}, "title": "DockerNetworkQueryResultItem", "type": "object", "_attrs_order_": ["ipam", "labels", "created", "driver", "id", "name", "scope", "short_id"]}], "type": "array"}, {"additionalProperties": false, "properties": {"ipam": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "IP Address Management configuration for the network or `null`.", "title": "ipam", "_name_": "ipam", "_required_": false}, "labels": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Metadata labels attached to the network or `null`.", "title": "labels", "_name_": "labels", "_required_": false}, "created": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Timestamp when the network was created or `null`.", "title": "created", "_name_": "created", "_required_": false}, "driver": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network driver type (bridge, host, overlay, etc.) or `null`.", "title": "driver", "_name_": "driver", "_required_": false}, "id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Full network identifier or `null`.", "title": "id", "_name_": "id", "_required_": false}, "name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Human-readable name of the network or `null`.", "title": "name", "_name_": "name", "_required_": false}, "scope": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network scope (local, global, swarm) or `null`.", "title": "scope", "_name_": "scope", "_required_": false}, "short_id": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Shortened network identifier or `null`.", "title": "short_id", "_name_": "short_id", "_required_": false}}, "title": "DockerNetworkQueryResultItem", "type": "object", "_attrs_order_": ["ipam", "labels", "created", "driver", "id", "name", "scope", "short_id"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "enclosure.label.set": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ENCLOSURE_WRITE"], "accepts": [{"description": "Enclosure identifier to set the label for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"description": "New label to assign to the enclosure.", "title": "label", "type": "string", "_name_": "label", "_required_": true}], "returns": [{"description": "Returns `null` when the enclosure label is successfully updated.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "failover.disabled.reasons": {"description": "Returns a list of reasons why failover is not enabled/functional.\nSee `DisabledReasonsEnum` for the reasons and their explanation.", "cli_description": "Returns a list of reasons why failover is not enabled/functional", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FAILOVER_READ", "FAILOVER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of reasons why failover is currently disabled.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "failover.reboot.info": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FAILOVER_READ", "FAILOVER_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"this_node": {"additionalProperties": false, "properties": {"boot_id": {"description": "Unique identifier for the current boot session.", "title": "boot_id", "type": "string", "_name_": "boot_id", "_required_": true}, "reboot_required_reasons": {"description": "Array of reasons why a system reboot is required.", "items": [{"additionalProperties": false, "properties": {"code": {"description": "Code identifying the reason for required reboot.", "title": "code", "type": "string", "_name_": "code", "_required_": true}, "reason": {"description": "Human-readable description of why a reboot is required.", "title": "reason", "type": "string", "_name_": "reason", "_required_": true}}, "required": ["code", "reason"], "title": "RebootRequiredReason", "type": "object", "_attrs_order_": ["code", "reason"]}], "title": "reboot_required_reasons", "type": "array", "_name_": "reboot_required_reasons", "_required_": true}}, "required": ["boot_id", "reboot_required_reasons"], "title": "this_node", "type": "object", "description": "Reboot information for the current node.", "_name_": "this_node", "_required_": true, "_attrs_order_": ["boot_id", "reboot_required_reasons"]}, "other_node": {"anyOf": [{"additionalProperties": false, "properties": {"boot_id": {"description": "Unique identifier for the current boot session.", "title": "boot_id", "type": "string", "_name_": "boot_id", "_required_": true}, "reboot_required_reasons": {"description": "Array of reasons why a system reboot is required.", "items": [{}], "title": "reboot_required_reasons", "type": "array", "_name_": "reboot_required_reasons", "_required_": true}}, "required": ["boot_id", "reboot_required_reasons"], "title": "RebootInfo", "type": "object", "_attrs_order_": ["boot_id", "reboot_required_reasons"]}, {"type": "null"}], "description": "Reboot information for the other node in the failover pair or `null` if not available.", "title": "other_node", "_name_": "other_node", "_required_": true}}, "required": ["this_node", "other_node"], "title": "result", "type": "object", "description": "FailoverRebootInfoResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["this_node", "other_node"]}]}, "failover.reboot.other_node": {"description": "Reboot the other node and wait for it to come back online.\n\nNOTE: This makes very few checks on HA systems. You need to\n know what you're doing before calling this.", "cli_description": "Reboot the other node and wait for it to come back online", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FULL_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"reason": {"default": "System upgrade", "description": "Reason for the system reboot.", "minLength": 1, "title": "reason", "type": "string", "_name_": "reason", "_required_": false}, "graceful": {"default": false, "description": "If set, call `system.reboot` to gracefully reboot the other node. By default, `failover.become_passive` will be called on the other node to forcefully reboot and simulate a failover event unless there were changes in the other node's boot environment.", "title": "graceful", "type": "boolean", "_name_": "graceful", "_required_": false}}, "title": "options", "type": "object", "default": {"reason": "System upgrade", "graceful": false}, "description": "Options for rebooting the other node.", "_name_": "options", "_required_": false, "_attrs_order_": ["reason", "graceful"]}], "returns": [{"description": "Returns `null` when the other node reboot is successfully initiated.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "fc.fc_host.create": {"description": "Creates FC host (pairing).\n\nThis will associate an `alias` with a corresponding Fibre Channel WWPN. For\nHA sytems the alias will be associated with a pair of WWPNs, one per node.\n\n`alias` is a user-readable name for FC host (pairing).\n\n`wwpn` is the WWPN in naa format (Controller A if HA)\n\n`wwpn_b` is the WWPN in naa format (Controller B, only applicable for HA)\n\n`npiv` is the number of NPIV hosts to create for this FC host.", "cli_description": "Creates FC host (pairing)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"default": 0, "description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "required": ["alias"], "title": "fc_host_create", "type": "object", "description": "Fibre Channel host configuration data for the new host.", "_name_": "fc_host_create", "_required_": true, "_attrs_order_": ["alias", "wwpn", "wwpn_b", "npiv"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel host configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"default": 0, "description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "required": ["id", "alias"], "title": "result", "type": "object", "description": "The created Fibre Channel host configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "alias", "wwpn", "wwpn_b", "npiv"]}]}, "fc.fc_host.delete": {"description": "Delete FC host `id`.", "cli_description": "Delete FC host `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the Fibre Channel host to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the Fibre Channel host is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "fc.fc_host.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel host configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"default": 0, "description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "required": ["id", "alias"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "alias", "wwpn", "wwpn_b", "npiv"]}]}, "fc.fc_host.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel host configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": false}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "title": "FCHostQueryResultItem", "type": "object", "_attrs_order_": ["id", "alias", "wwpn", "wwpn_b", "npiv"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel host configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": false}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "title": "FCHostQueryResultItem", "type": "object", "_attrs_order_": ["id", "alias", "wwpn", "wwpn_b", "npiv"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "fc.fc_host.update": {"description": "Update FC host `id`.\n\n`alias` is a user-readable name for FC host port.\n\n`wwpn` is the WWPN in naa format (Controller A if HA)\n\n`wwpn_b` is the WWPN in naa format (Controller B, only applicable for HA)\n\n`npiv` is the number of NPIV hosts to allow for this FC host.", "cli_description": "Update FC host `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the Fibre Channel host to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": false}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "title": "fc_host_update", "type": "object", "description": "Updated Fibre Channel host configuration data.", "_name_": "fc_host_update", "_required_": true, "_attrs_order_": ["alias", "wwpn", "wwpn_b", "npiv"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel host configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "alias": {"description": "Human-readable alias for the Fibre Channel host.", "maxLength": 32, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+$", "title": "alias", "type": "string", "_name_": "alias", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "default": null, "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "npiv": {"default": 0, "description": "Number of N_Port ID Virtualization (NPIV) virtual ports to create.", "title": "npiv", "type": "integer", "_name_": "npiv", "_required_": false}}, "required": ["id", "alias"], "title": "result", "type": "object", "description": "The updated Fibre Channel host configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "alias", "wwpn", "wwpn_b", "npiv"]}]}, "fcport.create": {"description": "Creates mapping between a FC port and a target.\n\n`port` is a FC host port `alias`, or `alias/number` for a NPIV port.\n\n`target_id` is the `id` of the target to be associated with the FC port.", "cli_description": "Creates mapping between a FC port and a target", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": true}, "target_id": {"description": "ID of the target to associate with this FC port.", "title": "target_id", "type": "integer", "_name_": "target_id", "_required_": true}}, "required": ["port", "target_id"], "title": "fc_Port_create", "type": "object", "description": "Fibre Channel port configuration data for the new port.", "_name_": "fc_Port_create", "_required_": true, "_attrs_order_": ["port", "target_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel port configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": true}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": true}, "target": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Target configuration object or `null` if not configured.", "title": "target", "_name_": "target", "_required_": true}}, "required": ["id", "port", "wwpn", "wwpn_b", "target"], "title": "result", "type": "object", "description": "The created Fibre Channel port configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "wwpn", "wwpn_b", "target"]}]}, "fcport.delete": {"description": "Delete FC port mapping `id`.", "cli_description": "Delete FC port mapping `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the Fibre Channel port to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the Fibre Channel port is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "fcport.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel port configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": true}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": true}, "target": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Target configuration object or `null` if not configured.", "title": "target", "_name_": "target", "_required_": true}}, "required": ["id", "port", "wwpn", "wwpn_b", "target"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "wwpn", "wwpn_b", "target"]}]}, "fcport.port_choices": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": true, "description": "Whether to include FC ports that are already in use.", "title": "include_used", "type": "boolean", "_name_": "include_used", "_required_": false}], "returns": [{"examples": [{"fc0": {"wwpn": "naa.2100001122334455", "wwpn_b": "naa.210000AABBCCDDEEFF"}, "fc0/1": {"wwpn": "naa.2200001122334455", "wwpn_b": "naa.220000AABBCCDDEEFF"}}], "patternProperties": {"^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$": {"additionalProperties": false, "properties": {"wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not available.", "title": "wwpn", "_name_": "wwpn", "_required_": true}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not available.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": true}}, "required": ["wwpn", "wwpn_b"], "title": "FCPortChoiceEntry", "type": "object", "_attrs_order_": ["wwpn", "wwpn_b"]}}, "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "fcport.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel port configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": false}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "target": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Target configuration object or `null` if not configured.", "title": "target", "_name_": "target", "_required_": false}}, "title": "FCPortQueryResultItem", "type": "object", "_attrs_order_": ["id", "port", "wwpn", "wwpn_b", "target"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel port configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": false}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": false}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": false}, "target": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Target configuration object or `null` if not configured.", "title": "target", "_name_": "target", "_required_": false}}, "title": "FCPortQueryResultItem", "type": "object", "_attrs_order_": ["id", "port", "wwpn", "wwpn_b", "target"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "fcport.status": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"description": "Array of Fibre Channel port status information.", "items": [{}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "fcport.update": {"description": "Update FC port mapping `id`.", "cli_description": "Update FC port mapping `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the Fibre Channel port to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": false}, "target_id": {"description": "ID of the target to associate with this FC port.", "title": "target_id", "type": "integer", "_name_": "target_id", "_required_": false}}, "title": "fc_Port_update", "type": "object", "description": "Updated Fibre Channel port configuration data.", "_name_": "fc_Port_update", "_required_": true, "_attrs_order_": ["port", "target_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Fibre Channel port configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"description": "Alias name for the Fibre Channel port.", "maxLength": 40, "minLength": 1, "pattern": "^[a-zA-Z0-9,\\-_:]+(/[1-9][0-9]*)?$", "title": "port", "type": "string", "_name_": "port", "_required_": true}, "wwpn": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port A or `null` if not configured.", "title": "wwpn", "_name_": "wwpn", "_required_": true}, "wwpn_b": {"anyOf": [{"pattern": "^naa.[0-9a-fA-F]{16}$", "type": "string"}, {"type": "null"}], "description": "World Wide Port Name for port B or `null` if not configured.", "title": "wwpn_b", "_name_": "wwpn_b", "_required_": true}, "target": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Target configuration object or `null` if not configured.", "title": "target", "_name_": "target", "_required_": true}}, "required": ["id", "port", "wwpn", "wwpn_b", "target"], "title": "result", "type": "object", "description": "The updated Fibre Channel port configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "wwpn", "wwpn_b", "target"]}]}, "filesystem.chown": {"description": "Change owner or group of file at `path`.\n\n`uid` and `gid` specify new owner of the file. If either\nkey is absent or None, then existing value on the file is not\nchanged.\n\n`user` and `group` alternatively allow specifying a uid gid by\nuser name or group name.\n\n`recursive` performs action recursively, but does\nnot traverse filesystem mount points.\n\nIf `traverse` and `recursive` are specified, then the chown\noperation will traverse filesystem mount points.", "cli_description": "Change owner or group of file at `path`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Filesystem path to modify.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user ID to set as owner. `null` to leave unchanged.", "title": "uid", "_name_": "uid", "_required_": false}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username to set as owner. `null` to leave unchanged.", "title": "user", "_name_": "user", "_required_": false}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric group ID to set as group owner. `null` to leave unchanged.", "title": "gid", "_name_": "gid", "_required_": false}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Group name to set as group owner. `null` to leave unchanged.", "title": "group", "_name_": "group", "_required_": false}, "options": {"additionalProperties": false, "properties": {"recursive": {"default": false, "description": "Whether to apply the operation recursively to subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "traverse": {"default": false, "description": "If set do not limit to single dataset / filesystem.", "title": "traverse", "type": "boolean", "_name_": "traverse", "_required_": false}}, "title": "options", "type": "object", "default": {"recursive": false, "traverse": false}, "description": "Additional options for the ownership change operation.", "_name_": "options", "_required_": false, "_attrs_order_": ["recursive", "traverse"]}}, "required": ["path"], "title": "filesystem_chown", "type": "object", "description": "FilesystemChownArgs parameters.", "_name_": "filesystem_chown", "_required_": true, "_attrs_order_": ["path", "uid", "user", "gid", "group", "options"]}], "returns": [{"description": "Returns `null` when the ownership change is successfully completed.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "filesystem.get": {"description": "Job to get contents of `path`.", "cli_description": "Job to get contents of `path`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["FULL_ADMIN"], "accepts": [{"description": "Path of the file to read.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}], "returns": [{"description": "Returns `null` when the file is successfully read.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "filesystem.get_zfs_attributes": {"description": "Get the current ZFS attributes for the file at the given path", "cli_description": "Get the current ZFS attributes for the file at the given path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Path to the file to get ZFS attributes for.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"readonly": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "READONLY MS-DOS attribute. When set, file may not be written to (toggling does not impact existing file opens). ", "title": "readonly", "_name_": "readonly", "_required_": false}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "HIDDEN MS-DOS attribute. When set, the SMB HIDDEN flag is set and file is \"hidden\" from the perspective of SMB clients. ", "title": "hidden", "_name_": "hidden", "_required_": false}, "system": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "SYSTEM MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "system", "_name_": "system", "_required_": false}, "archive": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "ARCHIVE MS-DOS attribute. Value is reset to True whenever file is modified. ", "title": "archive", "_name_": "archive", "_required_": false}, "immutable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may not be altered or deleted. Also appears as IMMUTABLE in attributes in `filesystem.stat` output and as STATX_ATTR_IMMUTABLE in statx() response. ", "title": "immutable", "_name_": "immutable", "_required_": false}, "nounlink": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may be altered but not deleted. ", "title": "nounlink", "_name_": "nounlink", "_required_": false}, "appendonly": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may only be opened with O_APPEND flag. Also appears as APPEND in attributes in `filesystem.stat` output and as STATX_ATTR_APPEND in statx() response. ", "title": "appendonly", "_name_": "appendonly", "_required_": false}, "offline": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "OFFLINE MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "offline", "_name_": "offline", "_required_": false}, "sparse": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "SPARSE MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "sparse", "_name_": "sparse", "_required_": false}}, "title": "result", "type": "object", "description": "The current ZFS file attributes.", "_name_": "result", "_required_": true, "_attrs_order_": ["readonly", "hidden", "system", "archive", "immutable", "nounlink", "appendonly", "offline", "sparse"]}]}, "filesystem.getacl": {"description": "Return ACL of a given path. This may return a POSIX1e ACL or a NFSv4 ACL. The acl type is indicated\nby the `acltype` key.\n\n`simplified` - effect of this depends on ACL type on underlying filesystem. In the case of\nNFSv4 ACLs simplified permissions and flags are returned for ACL entries where applicable.\nNFSv4 errata below. In the case of POSIX1E ACls, this setting has no impact on returned ACL.\n\n`resolve_ids` - adds additional `who` key to each ACL entry, that converts the numeric id to\na user name or group name. In the case of owner@ and group@ (NFSv4) or USER_OBJ and GROUP_OBJ\n(POSIX1E), st_uid or st_gid will be converted from stat() return for file. In the case of\nMASK (POSIX1E), OTHER (POSIX1E), everyone@ (NFSv4), key `who` will be included, but set to null.\nIn case of failure to resolve the id to a name, `who` will be set to null. This option should\nonly be used if resolving ids to names is required.\n\nErrata about ACLType NFSv4:\n\n`simplified` returns a shortened form of the ACL permset and flags where applicable. If permissions\nhave been simplified, then the `perms` object will contain only a single `BASIC` key with a string\ndescribing the underlying permissions set.\n\n`TRAVERSE` sufficient rights to traverse a directory, but not read contents.\n\n`READ` sufficient rights to traverse a directory, and read file contents.\n\n`MODIFIY` sufficient rights to traverse, read, write, and modify a file.\n\n`FULL_CONTROL` all permissions.\n\nIf the permisssions do not fit within one of the pre-defined simplified permissions types, then\nthe full ACL entry will be returned.", "cli_description": "Return ACL of a given path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Absolute filesystem path to get ACL information for.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, {"default": true, "description": "Whether to return simplified/basic permission sets instead of advanced permissions.", "title": "simplified", "type": "boolean", "_name_": "simplified", "_required_": false}, {"default": false, "description": "Whether to resolve numeric user/group IDs to names in the response.", "title": "resolve_ids", "type": "boolean", "_name_": "resolve_ids", "_required_": false}], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path this ACL information applies to.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username of the file/directory owner or `null` if unresolved.", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Group name of the file/directory group or `null` if unresolved.", "title": "group", "_name_": "group", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric user ID for file/directory ownership or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric group ID for file/directory ownership or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": true}, "acltype": {"const": "NFS4", "description": "ACL type identifier for NFS4 access control lists.", "enum": ["NFS4"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"description": "Array of NFS4 Access Control Entries defining permissions.", "items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "title": "acl", "type": "array", "_name_": "acl", "_required_": true}, "aclflags": {"additionalProperties": false, "properties": {"autoinherit": {"default": false, "description": "Whether inheritance is automatically applied from parent directories.", "title": "autoinherit", "type": "boolean", "_name_": "autoinherit", "_required_": false}, "protected": {"default": false, "description": "Whether the ACL is protected from inheritance modifications.", "title": "protected", "type": "boolean", "_name_": "protected", "_required_": false}, "defaulted": {"default": false, "description": "Whether this ACL was created by default rules rather than explicit configuration.", "title": "defaulted", "type": "boolean", "_name_": "defaulted", "_required_": false}}, "title": "aclflags", "type": "object", "description": "NFS4 ACL behavioral flags for inheritance and protection.", "_name_": "aclflags", "_required_": true, "_attrs_order_": ["autoinherit", "protected", "defaulted"]}, "trivial": {"description": "Whether this ACL is a simple/trivial ACL equivalent to POSIX permissions.", "title": "trivial", "type": "boolean", "_name_": "trivial", "_required_": true}}, "required": ["path", "user", "group", "uid", "gid", "acltype", "acl", "aclflags", "trivial"], "title": "NFS4ACLResult", "type": "object", "_attrs_order_": ["path", "user", "group", "uid", "gid", "acltype", "acl", "aclflags", "trivial"]}, {"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path this ACL information applies to.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username of the file/directory owner or `null` if unresolved.", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Group name of the file/directory group or `null` if unresolved.", "title": "group", "_name_": "group", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric user ID for file/directory ownership or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric group ID for file/directory ownership or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": true}, "acltype": {"const": "POSIX1E", "description": "ACL type identifier for POSIX.1e access control lists.", "enum": ["POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"description": "Array of POSIX Access Control Entries defining permissions.", "items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "title": "acl", "type": "array", "_name_": "acl", "_required_": true}, "trivial": {"description": "Whether this ACL is a simple/trivial ACL equivalent to standard POSIX permissions.", "title": "trivial", "type": "boolean", "_name_": "trivial", "_required_": true}}, "required": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"], "title": "POSIXACLResult", "type": "object", "_attrs_order_": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"]}, {"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path this ACL information applies to.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username of the file/directory owner or `null` if unresolved.", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Group name of the file/directory group or `null` if unresolved.", "title": "group", "_name_": "group", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric user ID for file/directory ownership or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric group ID for file/directory ownership or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": true}, "acltype": {"const": "DISABLED", "description": "ACL type identifier indicating access control lists are disabled.", "enum": ["DISABLED"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"description": "Always `null` when ACLs are disabled on the filesystem.", "title": "acl", "type": "null", "_name_": "acl", "_required_": true}, "trivial": {"const": true, "description": "Always `true` when ACLs are disabled - only basic POSIX permissions apply.", "enum": [true], "title": "trivial", "type": "boolean", "_name_": "trivial", "_required_": true}}, "required": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"], "title": "DISABLED_ACLResult", "type": "object", "_attrs_order_": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"]}], "description": "ACL information for the requested filesystem path.", "title": "result", "_name_": "result", "_required_": true}]}, "filesystem.listdir": {"description": "Get the contents of a directory.\n\nThe select option may be used to optimize listdir performance. Metadata-related\nfields that are not selected will not be retrieved from the filesystem.\n\nFor example {\"select\": [\"path\", \"type\"]} will avoid querying an xattr list and\nZFS attributes for files in a directory.\n\nNOTE: an empty list for select (default) is treated as requesting all information.\n\nEach entry of the list consists of:\n name(str): name of the file\n path(str): absolute path of the entry\n realpath(str): absolute real path of the entry (if SYMLINK)\n type(str): DIRECTORY | FILE | SYMLINK | OTHER\n size(int): size of the entry\n allocation_size(int): on-disk size of entry\n mode(int): file mode/permission\n uid(int): user id of entry owner\n gid(int): group id of entry owner\n acl(bool): extended ACL is present on file\n is_mountpoint(bool): path is a mountpoint\n is_ctldir(bool): path is within special .zfs directory\n attributes(list): list of statx file attributes that apply to the\n file. See statx(2) manpage for more details.\n xattrs(list): list of extended attribute names.\n zfs_attrs(list): list of ZFS file attributes on file", "cli_description": "Get the contents of a directory", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Directory path to list contents of.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, {"default": [], "description": "Query filters to apply to the directory listing.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "query_filters", "type": "array", "_name_": "query_filters", "_required_": false}, {"additionalProperties": false, "description": "Query options for sorting and pagination.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "query_options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "query_options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"name": {"description": "Entry's base name. ", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "path": {"description": "Entry's full path. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "realpath": {"description": "Canonical path of the entry, eliminating any symbolic links. ", "minLength": 1, "title": "realpath", "type": "string", "_name_": "realpath", "_required_": false}, "type": {"description": "Type of filesystem entry.\n\n* `DIRECTORY`: Directory/folder\n* `FILE`: Regular file\n* `SYMLINK`: Symbolic link\n* `OTHER`: Other file types (device, pipe, socket, etc.)", "enum": ["DIRECTORY", "FILE", "SYMLINK", "OTHER"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "size": {"description": "Size of the file in bytes. For directories, this may not represent total content size. Corresonds with stx_size.", "title": "size", "type": "integer", "_name_": "size", "_required_": false}, "allocation_size": {"description": "Allocated size of file. Calculated by multiplying stx_blocks by 512. ", "title": "allocation_size", "type": "integer", "_name_": "allocation_size", "_required_": false}, "mode": {"description": "Entry's mode including file type information and file permission bits. This corresponds with stx_mode. ", "title": "mode", "type": "integer", "_name_": "mode", "_required_": false}, "mount_id": {"description": "The mount ID of the mount containing the entry. This corresponds to the number in first field of /proc/self/mountinfo and stx_mnt_id. ", "title": "mount_id", "type": "integer", "_name_": "mount_id", "_required_": false}, "acl": {"description": "Specifies whether ACL is present on the entry. If this is the case then file permission bits as reported in `mode` may not be representative of the actual permissions. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "uid": {"description": "User ID of the entry's owner. This corresponds with stx_uid. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": false}, "gid": {"description": "Group ID of the entry's owner. This corresponds with stx_gid. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": false}, "is_mountpoint": {"description": "Specifies whether the entry is also the mountpoint of a filesystem. ", "title": "is_mountpoint", "type": "boolean", "_name_": "is_mountpoint", "_required_": false}, "is_ctldir": {"description": "Specifies whether the entry is located within the ZFS ctldir (for example a snapshot). ", "title": "is_ctldir", "type": "boolean", "_name_": "is_ctldir", "_required_": false}, "attributes": {"description": "Extra file attribute indicators for entry as returned by statx. Expanded from stx_attributes. ", "items": [{"enum": ["COMPRESSED", "APPEND", "NODUMP", "IMMUTABLE", "AUTOMOUNT", "MOUNT_ROOT", "VERIFY", "DAX"], "type": "string"}], "title": "attributes", "type": "array", "_name_": "attributes", "_required_": false}, "xattrs": {"description": "List of xattr names of extended attributes on file. ", "items": [{"minLength": 1, "type": "string"}], "title": "xattrs", "type": "array", "_name_": "xattrs", "_required_": false}, "zfs_attrs": {"anyOf": [{"items": [{"enum": ["READONLY", "HIDDEN", "SYSTEM", "ARCHIVE", "IMMUTABLE", "NOUNLINK", "APPENDONLY", "NODUMP", "OPAQUE", "AV_QUARANTINED", "AV_MODIFIED", "REPARSE", "OFFLINE", "SPARSE"], "type": "string"}], "type": "array"}, {"type": "null"}], "description": "List of extra ZFS-related file attribute indicators on file. Will be None type if filesystem is not ZFS. ", "title": "zfs_attrs", "_name_": "zfs_attrs", "_required_": false}}, "title": "FilesystemDirQueryResultItem", "type": "object", "_attrs_order_": ["name", "path", "realpath", "type", "size", "allocation_size", "mode", "mount_id", "acl", "uid", "gid", "is_mountpoint", "is_ctldir", "attributes", "xattrs", "zfs_attrs"]}], "type": "array"}, {"additionalProperties": false, "properties": {"name": {"description": "Entry's base name. ", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "path": {"description": "Entry's full path. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "realpath": {"description": "Canonical path of the entry, eliminating any symbolic links. ", "minLength": 1, "title": "realpath", "type": "string", "_name_": "realpath", "_required_": false}, "type": {"description": "Type of filesystem entry.\n\n* `DIRECTORY`: Directory/folder\n* `FILE`: Regular file\n* `SYMLINK`: Symbolic link\n* `OTHER`: Other file types (device, pipe, socket, etc.)", "enum": ["DIRECTORY", "FILE", "SYMLINK", "OTHER"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "size": {"description": "Size of the file in bytes. For directories, this may not represent total content size. Corresonds with stx_size.", "title": "size", "type": "integer", "_name_": "size", "_required_": false}, "allocation_size": {"description": "Allocated size of file. Calculated by multiplying stx_blocks by 512. ", "title": "allocation_size", "type": "integer", "_name_": "allocation_size", "_required_": false}, "mode": {"description": "Entry's mode including file type information and file permission bits. This corresponds with stx_mode. ", "title": "mode", "type": "integer", "_name_": "mode", "_required_": false}, "mount_id": {"description": "The mount ID of the mount containing the entry. This corresponds to the number in first field of /proc/self/mountinfo and stx_mnt_id. ", "title": "mount_id", "type": "integer", "_name_": "mount_id", "_required_": false}, "acl": {"description": "Specifies whether ACL is present on the entry. If this is the case then file permission bits as reported in `mode` may not be representative of the actual permissions. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "uid": {"description": "User ID of the entry's owner. This corresponds with stx_uid. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": false}, "gid": {"description": "Group ID of the entry's owner. This corresponds with stx_gid. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": false}, "is_mountpoint": {"description": "Specifies whether the entry is also the mountpoint of a filesystem. ", "title": "is_mountpoint", "type": "boolean", "_name_": "is_mountpoint", "_required_": false}, "is_ctldir": {"description": "Specifies whether the entry is located within the ZFS ctldir (for example a snapshot). ", "title": "is_ctldir", "type": "boolean", "_name_": "is_ctldir", "_required_": false}, "attributes": {"description": "Extra file attribute indicators for entry as returned by statx. Expanded from stx_attributes. ", "items": [{"enum": ["COMPRESSED", "APPEND", "NODUMP", "IMMUTABLE", "AUTOMOUNT", "MOUNT_ROOT", "VERIFY", "DAX"], "type": "string"}], "title": "attributes", "type": "array", "_name_": "attributes", "_required_": false}, "xattrs": {"description": "List of xattr names of extended attributes on file. ", "items": [{"minLength": 1, "type": "string"}], "title": "xattrs", "type": "array", "_name_": "xattrs", "_required_": false}, "zfs_attrs": {"anyOf": [{"items": [{"enum": ["READONLY", "HIDDEN", "SYSTEM", "ARCHIVE", "IMMUTABLE", "NOUNLINK", "APPENDONLY", "NODUMP", "OPAQUE", "AV_QUARANTINED", "AV_MODIFIED", "REPARSE", "OFFLINE", "SPARSE"], "type": "string"}], "type": "array"}, {"type": "null"}], "description": "List of extra ZFS-related file attribute indicators on file. Will be None type if filesystem is not ZFS. ", "title": "zfs_attrs", "_name_": "zfs_attrs", "_required_": false}}, "title": "FilesystemDirQueryResultItem", "type": "object", "_attrs_order_": ["name", "path", "realpath", "type", "size", "allocation_size", "mode", "mount_id", "acl", "uid", "gid", "is_mountpoint", "is_ctldir", "attributes", "xattrs", "zfs_attrs"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "filesystem.mkdir": {"description": "Create a directory at the specified path.\n\nThe following options are supported:\n\n`mode` - specify the permissions to set on the new directory (0o755 is default).\n`raise_chmod_error` - choose whether to raise an exception if the attempt to set\nmode fails. In this case, the newly created directory will be removed to prevent\nuse with unintended permissions.\n\nNOTE: if chmod error is skipped, the resulting `mode` key in mkdir response will\nindicate the current permissions on the directory and not the permissions specified\nin the mkdir payload", "cli_description": "Create a directory at the specified path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_DATA_WRITE", "FILESYSTEM_FULL_CONTROL"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Path where the new directory should be created.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "options": {"additionalProperties": false, "properties": {"mode": {"default": "755", "description": "Unix permissions for the new directory.", "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "raise_chmod_error": {"default": true, "description": "Whether to raise an error if chmod fails.", "title": "raise_chmod_error", "type": "boolean", "_name_": "raise_chmod_error", "_required_": false}}, "title": "options", "type": "object", "default": {"mode": "755", "raise_chmod_error": true}, "description": "Options controlling directory creation behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["mode", "raise_chmod_error"]}}, "required": ["path"], "title": "filesystem_mkdir", "type": "object", "description": "FilesystemMkdirArgs parameters.", "_name_": "filesystem_mkdir", "_required_": true, "_attrs_order_": ["path", "options"]}], "returns": [{"additionalProperties": false, "properties": {"name": {"description": "Entry's base name. ", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "path": {"description": "Entry's full path. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "realpath": {"description": "Canonical path of the entry, eliminating any symbolic links. ", "minLength": 1, "title": "realpath", "type": "string", "_name_": "realpath", "_required_": true}, "type": {"description": "Type of filesystem entry.\n\n* `DIRECTORY`: Directory/folder\n* `FILE`: Regular file\n* `SYMLINK`: Symbolic link\n* `OTHER`: Other file types (device, pipe, socket, etc.)", "enum": ["DIRECTORY", "FILE", "SYMLINK", "OTHER"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "size": {"description": "Size of the file in bytes. For directories, this may not represent total content size. Corresonds with stx_size.", "title": "size", "type": "integer", "_name_": "size", "_required_": true}, "allocation_size": {"description": "Allocated size of file. Calculated by multiplying stx_blocks by 512. ", "title": "allocation_size", "type": "integer", "_name_": "allocation_size", "_required_": true}, "mode": {"description": "Entry's mode including file type information and file permission bits. This corresponds with stx_mode. ", "title": "mode", "type": "integer", "_name_": "mode", "_required_": true}, "mount_id": {"description": "The mount ID of the mount containing the entry. This corresponds to the number in first field of /proc/self/mountinfo and stx_mnt_id. ", "title": "mount_id", "type": "integer", "_name_": "mount_id", "_required_": true}, "acl": {"description": "Specifies whether ACL is present on the entry. If this is the case then file permission bits as reported in `mode` may not be representative of the actual permissions. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": true}, "uid": {"description": "User ID of the entry's owner. This corresponds with stx_uid. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": true}, "gid": {"description": "Group ID of the entry's owner. This corresponds with stx_gid. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "is_mountpoint": {"description": "Specifies whether the entry is also the mountpoint of a filesystem. ", "title": "is_mountpoint", "type": "boolean", "_name_": "is_mountpoint", "_required_": true}, "is_ctldir": {"description": "Specifies whether the entry is located within the ZFS ctldir (for example a snapshot). ", "title": "is_ctldir", "type": "boolean", "_name_": "is_ctldir", "_required_": true}, "attributes": {"description": "Extra file attribute indicators for entry as returned by statx. Expanded from stx_attributes. ", "items": [{"enum": ["COMPRESSED", "APPEND", "NODUMP", "IMMUTABLE", "AUTOMOUNT", "MOUNT_ROOT", "VERIFY", "DAX"], "type": "string"}], "title": "attributes", "type": "array", "_name_": "attributes", "_required_": true}, "xattrs": {"description": "List of xattr names of extended attributes on file. ", "items": [{"minLength": 1, "type": "string"}], "title": "xattrs", "type": "array", "_name_": "xattrs", "_required_": true}, "zfs_attrs": {"anyOf": [{"items": [{"enum": ["READONLY", "HIDDEN", "SYSTEM", "ARCHIVE", "IMMUTABLE", "NOUNLINK", "APPENDONLY", "NODUMP", "OPAQUE", "AV_QUARANTINED", "AV_MODIFIED", "REPARSE", "OFFLINE", "SPARSE"], "type": "string"}], "type": "array"}, {"type": "null"}], "description": "List of extra ZFS-related file attribute indicators on file. Will be None type if filesystem is not ZFS. ", "title": "zfs_attrs", "_name_": "zfs_attrs", "_required_": true}}, "required": ["name", "path", "realpath", "type", "size", "allocation_size", "mode", "mount_id", "acl", "uid", "gid", "is_mountpoint", "is_ctldir", "attributes", "xattrs", "zfs_attrs"], "title": "result", "type": "object", "description": "Information about the created directory.", "_name_": "result", "_required_": true, "_attrs_order_": ["name", "path", "realpath", "type", "size", "allocation_size", "mode", "mount_id", "acl", "uid", "gid", "is_mountpoint", "is_ctldir", "attributes", "xattrs", "zfs_attrs"]}]}, "filesystem.put": {"description": "Job to put contents to `path`.", "cli_description": "Job to put contents to `path`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": true, "roles": ["FULL_ADMIN"], "accepts": [{"description": "Path where the file should be written.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, {"additionalProperties": false, "properties": {"append": {"default": false, "description": "Whether to append to the file instead of overwriting.", "title": "append", "type": "boolean", "_name_": "append", "_required_": false}, "mode": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Unix permissions to set on the file or `null` to use default.", "title": "mode", "_name_": "mode", "_required_": false}}, "title": "options", "type": "object", "default": {"append": false, "mode": null}, "description": "Options controlling file writing behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["append", "mode"]}], "returns": [{"const": true, "description": "Returns `true` when the file is successfully written.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "filesystem.set_zfs_attributes": {"description": "Set special ZFS-related file flags on the specified path\n\n`readonly` - this maps to READONLY MS-DOS attribute. When set, file may not be\nwritten to (toggling does not impact existing file opens).\n\n`hidden` - this maps to HIDDEN MS-DOS attribute. When set, the SMB HIDDEN flag\nis set and file is \"hidden\" from the perspective of SMB clients.\n\n`system` - this maps to SYSTEM MS-DOS attribute. Is presented to SMB clients, but\nhas no impact on local filesystem.\n\n`archive` - this maps to ARCHIVE MS-DOS attribute. Value is reset to True whenever\nfile is modified.\n\n`immutable` - file may not be altered or deleted. Also appears as IMMUTABLE in\nattributes in `filesystem.stat` output and as STATX_ATTR_IMMUTABLE in statx() response.\n\n`nounlink` - file may be altered but not deleted.\n\n`appendonly` - file may only be opened with O_APPEND flag. Also appears as APPEND in\nattributes in `filesystem.stat` output and as STATX_ATTR_APPEND in statx() response.\n\n`offline` - this maps to OFFLINE MS-DOS attribute. Is presented to SMB clients, but\nhas no impact on local filesystem.\n\n`sparse` - maps to SPARSE MS-DOS attribute. Is presented to SMB clients, but has\nno impact on local filesystem.", "cli_description": "Set special ZFS-related file flags on the specified path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Path to the file to set ZFS attributes on.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "zfs_file_attributes": {"additionalProperties": false, "properties": {"readonly": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "READONLY MS-DOS attribute. When set, file may not be written to (toggling does not impact existing file opens). ", "title": "readonly", "_name_": "readonly", "_required_": false}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "HIDDEN MS-DOS attribute. When set, the SMB HIDDEN flag is set and file is \"hidden\" from the perspective of SMB clients. ", "title": "hidden", "_name_": "hidden", "_required_": false}, "system": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "SYSTEM MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "system", "_name_": "system", "_required_": false}, "archive": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "ARCHIVE MS-DOS attribute. Value is reset to True whenever file is modified. ", "title": "archive", "_name_": "archive", "_required_": false}, "immutable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may not be altered or deleted. Also appears as IMMUTABLE in attributes in `filesystem.stat` output and as STATX_ATTR_IMMUTABLE in statx() response. ", "title": "immutable", "_name_": "immutable", "_required_": false}, "nounlink": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may be altered but not deleted. ", "title": "nounlink", "_name_": "nounlink", "_required_": false}, "appendonly": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may only be opened with O_APPEND flag. Also appears as APPEND in attributes in `filesystem.stat` output and as STATX_ATTR_APPEND in statx() response. ", "title": "appendonly", "_name_": "appendonly", "_required_": false}, "offline": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "OFFLINE MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "offline", "_name_": "offline", "_required_": false}, "sparse": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "SPARSE MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "sparse", "_name_": "sparse", "_required_": false}}, "title": "zfs_file_attributes", "type": "object", "description": "ZFS file attributes to set.", "_name_": "zfs_file_attributes", "_required_": true, "_attrs_order_": ["readonly", "hidden", "system", "archive", "immutable", "nounlink", "appendonly", "offline", "sparse"]}}, "required": ["path", "zfs_file_attributes"], "title": "set_zfs_file_attributes", "type": "object", "description": "FilesystemSetZfsAttributesArgs parameters.", "_name_": "set_zfs_file_attributes", "_required_": true, "_attrs_order_": ["path", "zfs_file_attributes"]}], "returns": [{"additionalProperties": false, "properties": {"readonly": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "READONLY MS-DOS attribute. When set, file may not be written to (toggling does not impact existing file opens). ", "title": "readonly", "_name_": "readonly", "_required_": false}, "hidden": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "HIDDEN MS-DOS attribute. When set, the SMB HIDDEN flag is set and file is \"hidden\" from the perspective of SMB clients. ", "title": "hidden", "_name_": "hidden", "_required_": false}, "system": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "SYSTEM MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "system", "_name_": "system", "_required_": false}, "archive": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "ARCHIVE MS-DOS attribute. Value is reset to True whenever file is modified. ", "title": "archive", "_name_": "archive", "_required_": false}, "immutable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may not be altered or deleted. Also appears as IMMUTABLE in attributes in `filesystem.stat` output and as STATX_ATTR_IMMUTABLE in statx() response. ", "title": "immutable", "_name_": "immutable", "_required_": false}, "nounlink": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may be altered but not deleted. ", "title": "nounlink", "_name_": "nounlink", "_required_": false}, "appendonly": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "File may only be opened with O_APPEND flag. Also appears as APPEND in attributes in `filesystem.stat` output and as STATX_ATTR_APPEND in statx() response. ", "title": "appendonly", "_name_": "appendonly", "_required_": false}, "offline": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "OFFLINE MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "offline", "_name_": "offline", "_required_": false}, "sparse": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "SPARSE MS-DOS attribute. Is presented to SMB clients, but has no impact on local filesystem. ", "title": "sparse", "_name_": "sparse", "_required_": false}}, "title": "result", "type": "object", "description": "The updated ZFS file attributes.", "_name_": "result", "_required_": true, "_attrs_order_": ["readonly", "hidden", "system", "archive", "immutable", "nounlink", "appendonly", "offline", "sparse"]}]}, "filesystem.setacl": {"description": "Set ACL of a given path. Takes the following parameters:\n`path` full path to directory or file.\n\n`dacl` ACL entries. Formatting depends on the underlying `acltype`. NFS4ACL requires\nNFSv4 entries. POSIX1e requires POSIX1e entries.\n\n`uid` the desired UID of the file user. If set to None (the default), then user is not changed.\n\n`user` the desired username for the file user. If set to None, then user is not changed.\n\nNote about interaction between `uid` and `user`:\nOne and only one of these parameters should be set, and _only_ if the API consumer wishes to\nchange the owner on the file / directory.\n\n`gid` the desired GID of the file group. If set to None (the default), then group is not changed.\n\n`group` the desired groupname for the file group. If set to None (the default), then group is not\nchanged.\n\nNote about interaction between `gid` and `group`:\nOne and only one of these parameters should be set, and _only_ if the API consumer wishes to\nchange the owner on the file / directory.\n\nWARNING: if user, uid, group, or gid is specified in a recursive operation then the owning\nuser, group, or both for _all_ files will be changed.\n\n`recursive` apply the ACL recursively\n\n`traverse` traverse filestem boundaries (ZFS datasets)\n\n`strip` convert ACL to trivial. ACL is trivial if it can be expressed as a file mode without\nlosing any access rules.\n\n`canonicalize` reorder ACL entries so that they are in concanical form as described\nin the Microsoft documentation MS-DTYP 2.4.5 (ACL). This only applies to NFSv4 ACLs.\n\nThe following notes about ACL entries are necessarily terse. If more detail is requried\nplease consult relevant TrueNAS documentation.\n\nNotes about NFSv4 ACL entry fields:\n\n`tag` refers to the type of principal to whom the ACL entries applies. USER and GROUP have\nconventional meanings. `owner@` refers to the owning user of the file, `group@` refers to the owning\ngroup of the file, and `everyone@` refers to ALL users (including the owning user and group)..\n\n`id` refers to the numeric user id or group id associatiated with USER or GROUP entries.\n\n`who` a user or group name may be specified in lieu of numeric ID for USER or GROUP entries\n\n`type` may be ALLOW or DENY. Deny entries take precedence over allow when the ACL is evaluated.\n\n`perms` permissions allowed or denied by the entry. May be set as a simlified BASIC type or\nmore complex type detailing specific permissions.\n\n`flags` inheritance flags determine how this entry will be presented (if at all) on newly-created\nfiles or directories within the specified path. Only valid for directories.\n\nNotes about posix1e ACL entry fields:\n\n`default` the ACL entry is in the posix default ACL (will be copied to new files and directories)\ncreated within the directory where it is set. These are _NOT_ evaluated when determining access for\nthe file on which they're set. If default is false then the entry applies to the posix access ACL,\nwhich is used to determine access to the directory, but is not inherited on new files / directories.\n\n`tag` the type of principal to whom the ACL entry apples. USER and GROUP have conventional meanings\nUSER_OBJ refers to the owning user of the file and is also denoted by \"user\" in conventional POSIX\nUGO permissions. GROUP_OBJ refers to the owning group of the file and is denoted by \"group\" in the\nsame. OTHER refers to POSIX other, which applies to all users and groups who are not USER_OBJ or\nGROUP_OBJ. MASK sets maximum permissions granted to all USER and GROUP entries. A valid POSIX1 ACL\nentry contains precisely one USER_OBJ, GROUP_OBJ, OTHER, and MASK entry for the default and access\nlist.\n\n`id` refers to the numeric user id or group id associatiated with USER or GROUP entries.\n\n`who` a user or group name may be specified in lieu of numeric ID for USER or GROUP entries\n\n`perms` - object containing posix permissions.", "cli_description": "Set ACL of a given path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path to set ACL on.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "dacl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries to apply to the filesystem object.", "title": "dacl", "_name_": "dacl", "_required_": true}, "options": {"additionalProperties": false, "properties": {"stripacl": {"default": false, "description": "Whether to remove the ACL entirely and revert to basic POSIX permissions.", "title": "stripacl", "type": "boolean", "_name_": "stripacl", "_required_": false}, "recursive": {"default": false, "description": "Whether to apply ACL changes recursively to all child files and directories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "traverse": {"default": false, "description": "Whether to traverse filesystem boundaries during recursive operations.", "title": "traverse", "type": "boolean", "_name_": "traverse", "_required_": false}, "canonicalize": {"default": true, "description": "Whether to reorder ACL entries in Windows canonical order.", "title": "canonicalize", "type": "boolean", "_name_": "canonicalize", "_required_": false}, "validate_effective_acl": {"default": true, "description": "Whether to validate that the users/groups granted access in the ACL can actually access the path or parent path.", "title": "validate_effective_acl", "type": "boolean", "_name_": "validate_effective_acl", "_required_": false}}, "title": "options", "type": "object", "default": {"stripacl": false, "recursive": false, "traverse": false, "canonicalize": true, "validate_effective_acl": true}, "description": "Configuration options for ACL setting behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["stripacl", "recursive", "traverse", "canonicalize", "validate_effective_acl"]}, "nfs41_flags": {"additionalProperties": false, "properties": {"autoinherit": {"default": false, "description": "Whether inheritance is automatically applied from parent directories.", "title": "autoinherit", "type": "boolean", "_name_": "autoinherit", "_required_": false}, "protected": {"default": false, "description": "Whether the ACL is protected from inheritance modifications.", "title": "protected", "type": "boolean", "_name_": "protected", "_required_": false}, "defaulted": {"default": false, "description": "Whether this ACL was created by default rules rather than explicit configuration.", "title": "defaulted", "type": "boolean", "_name_": "defaulted", "_required_": false}}, "title": "nfs41_flags", "type": "object", "default": {"autoinherit": false, "protected": false, "defaulted": false}, "description": "NFS4 ACL flags for inheritance and protection behavior.", "_name_": "nfs41_flags", "_required_": false, "_attrs_order_": ["autoinherit", "protected", "defaulted"]}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": -1, "description": "Numeric user ID to set as owner or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": false}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Username to set as owner or `null` to preserve existing.", "title": "user", "_name_": "user", "_required_": false}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": -1, "description": "Numeric group ID to set as group or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": false}, "group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Group name to set as group or `null` to preserve existing.", "title": "group", "_name_": "group", "_required_": false}, "acltype": {"anyOf": [{"enum": ["NFS4", "POSIX1E"], "type": "string"}, {"type": "null"}], "default": null, "description": "ACL type to use or `null` to auto-detect from filesystem capabilities.", "title": "acltype", "_name_": "acltype", "_required_": false}}, "required": ["path", "dacl"], "title": "filesystem_acl", "type": "object", "description": "FilesystemSetaclArgs parameters.", "_name_": "filesystem_acl", "_required_": true, "_attrs_order_": ["path", "dacl", "options", "nfs41_flags", "uid", "user", "gid", "group", "acltype"]}], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path this ACL information applies to.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username of the file/directory owner or `null` if unresolved.", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Group name of the file/directory group or `null` if unresolved.", "title": "group", "_name_": "group", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric user ID for file/directory ownership or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric group ID for file/directory ownership or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": true}, "acltype": {"const": "NFS4", "description": "ACL type identifier for NFS4 access control lists.", "enum": ["NFS4"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"description": "Array of NFS4 Access Control Entries defining permissions.", "items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "title": "acl", "type": "array", "_name_": "acl", "_required_": true}, "aclflags": {"additionalProperties": false, "properties": {"autoinherit": {"default": false, "description": "Whether inheritance is automatically applied from parent directories.", "title": "autoinherit", "type": "boolean", "_name_": "autoinherit", "_required_": false}, "protected": {"default": false, "description": "Whether the ACL is protected from inheritance modifications.", "title": "protected", "type": "boolean", "_name_": "protected", "_required_": false}, "defaulted": {"default": false, "description": "Whether this ACL was created by default rules rather than explicit configuration.", "title": "defaulted", "type": "boolean", "_name_": "defaulted", "_required_": false}}, "title": "aclflags", "type": "object", "description": "NFS4 ACL behavioral flags for inheritance and protection.", "_name_": "aclflags", "_required_": true, "_attrs_order_": ["autoinherit", "protected", "defaulted"]}, "trivial": {"description": "Whether this ACL is a simple/trivial ACL equivalent to POSIX permissions.", "title": "trivial", "type": "boolean", "_name_": "trivial", "_required_": true}}, "required": ["path", "user", "group", "uid", "gid", "acltype", "acl", "aclflags", "trivial"], "title": "NFS4ACLResult", "type": "object", "_attrs_order_": ["path", "user", "group", "uid", "gid", "acltype", "acl", "aclflags", "trivial"]}, {"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path this ACL information applies to.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username of the file/directory owner or `null` if unresolved.", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Group name of the file/directory group or `null` if unresolved.", "title": "group", "_name_": "group", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric user ID for file/directory ownership or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric group ID for file/directory ownership or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": true}, "acltype": {"const": "POSIX1E", "description": "ACL type identifier for POSIX.1e access control lists.", "enum": ["POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"description": "Array of POSIX Access Control Entries defining permissions.", "items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "title": "acl", "type": "array", "_name_": "acl", "_required_": true}, "trivial": {"description": "Whether this ACL is a simple/trivial ACL equivalent to standard POSIX permissions.", "title": "trivial", "type": "boolean", "_name_": "trivial", "_required_": true}}, "required": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"], "title": "POSIXACLResult", "type": "object", "_attrs_order_": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"]}, {"additionalProperties": false, "properties": {"path": {"description": "Absolute filesystem path this ACL information applies to.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username of the file/directory owner or `null` if unresolved.", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Group name of the file/directory group or `null` if unresolved.", "title": "group", "_name_": "group", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric user ID for file/directory ownership or `null` to preserve existing.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "description": "Numeric group ID for file/directory ownership or `null` to preserve existing.", "title": "gid", "_name_": "gid", "_required_": true}, "acltype": {"const": "DISABLED", "description": "ACL type identifier indicating access control lists are disabled.", "enum": ["DISABLED"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"description": "Always `null` when ACLs are disabled on the filesystem.", "title": "acl", "type": "null", "_name_": "acl", "_required_": true}, "trivial": {"const": true, "description": "Always `true` when ACLs are disabled - only basic POSIX permissions apply.", "enum": [true], "title": "trivial", "type": "boolean", "_name_": "trivial", "_required_": true}}, "required": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"], "title": "DISABLED_ACLResult", "type": "object", "_attrs_order_": ["path", "user", "group", "uid", "gid", "acltype", "acl", "trivial"]}], "description": "ACL information for the requested filesystem path.", "title": "result", "_name_": "result", "_required_": true}]}, "filesystem.setperm": {"description": "Set unix permissions on given `path`.\n\nIf `mode` is specified then the mode will be applied to the\npath and files and subdirectories depending on which `options` are\nselected. Mode should be formatted as string representation of octal\npermissions bits.\n\n`uid` the desired UID of the file user. If set to None (the default), then user is not changed.\n\n`gid` the desired GID of the file group. If set to None (the default), then group is not changed.\n\n`user` and `group` alternatively allow specifying the owner by name.\n\nWARNING: `uid`, `gid, `user`, and `group` _should_ remain unset _unless_\nthe administrator wishes to change the owner or group of files.\n\n`stripacl` setperm will fail if an extended ACL is present on `path`,\nunless `stripacl` is set to True.\n\n`recursive` remove ACLs recursively, but do not traverse dataset\nboundaries.\n\n`traverse` remove ACLs from child datasets.\n\nIf no `mode` is set, and `stripacl` is True, then non-trivial ACLs\nwill be converted to trivial ACLs. An ACL is trivial if it can be\nexpressed as a file mode without losing any access rules.", "cli_description": "Set unix permissions on given `path`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Filesystem path to modify.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "uid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user ID to set as owner. `null` to leave unchanged.", "title": "uid", "_name_": "uid", "_required_": false}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username to set as owner. `null` to leave unchanged.", "title": "user", "_name_": "user", "_required_": false}, "gid": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric group ID to set as group owner. `null` to leave unchanged.", "title": "gid", "_name_": "gid", "_required_": false}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Group name to set as group owner. `null` to leave unchanged.", "title": "group", "_name_": "group", "_required_": false}, "mode": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unix permissions to set (octal format). `null` to leave unchanged.", "title": "mode", "_name_": "mode", "_required_": false}, "options": {"additionalProperties": false, "properties": {"recursive": {"default": false, "description": "Whether to apply the operation recursively to subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "traverse": {"default": false, "description": "If set do not limit to single dataset / filesystem.", "title": "traverse", "type": "boolean", "_name_": "traverse", "_required_": false}, "stripacl": {"default": false, "description": "Whether to remove existing Access Control Lists when setting permissions.", "title": "stripacl", "type": "boolean", "_name_": "stripacl", "_required_": false}}, "title": "options", "type": "object", "default": {"recursive": false, "traverse": false, "stripacl": false}, "description": "Additional options for the permission change operation.", "_name_": "options", "_required_": false, "_attrs_order_": ["recursive", "traverse", "stripacl"]}}, "required": ["path"], "title": "filesystem_setperm", "type": "object", "description": "FilesystemSetpermArgs parameters.", "_name_": "filesystem_setperm", "_required_": true, "_attrs_order_": ["path", "uid", "user", "gid", "group", "mode", "options"]}], "returns": [{"description": "Returns `null` when the permission change is successfully completed.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "filesystem.stat": {"description": "Return filesystem information for a given path.\n\n`realpath(str)`: absolute real path of the entry (if SYMLINK)\n\n`type(str)`: DIRECTORY | FILE | SYMLINK | OTHER\n\n`size(int)`: size of the entry\n\n`allocation_size(int)`: on-disk size of entry\n\n`mode(int)`: file mode/permission\n\n`uid(int)`: user id of file owner\n\n`gid(int)`: group id of file owner\n\n`atime(float)`: timestamp for when file was last accessed.\nNOTE: this timestamp may be changed from userspace.\n\n`mtime(float)`: timestamp for when file data was last modified\nNOTE: this timestamp may be changed from userspace.\n\n`ctime(float)`: timestamp for when file was last changed.\n\n`btime(float)`: timestamp for when file was initially created.\nNOTE: depending on platform this may be changed from userspace.\n\n`dev(int)`: device id of the device containing the file. In the\ncontext of the TrueNAS API, this is sufficient to uniquely identify\na given dataset.\n\n`mount_id(int)`: the mount id for the filesystem underlying the given path.\nBind mounts will have same device id, but different mount IDs. This value\nis sufficient to uniquely identify the particular mount which can be used\nto identify children of the given mountpoint.\n\n`inode(int)`: inode number of the file. This number uniquely identifies\nthe file on the given device, but once a file is deleted its inode number\nmay be reused.\n\n`nlink(int)`: number of hard lnks to the file.\n\n`acl(bool)`: extended ACL is present on file\n\n`is_mountpoint(bool)`: path is a mountpoint\n\n`is_ctldir(bool)`: path is within special .zfs directory\n\n`attributes(list)`: list of statx file attributes that apply to the\nfile. See statx(2) manpage for more details.", "cli_description": "Return filesystem information for a given path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Absolute filesystem path to get statistics for.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"realpath": {"description": "Canonical path of the entry, eliminating any symbolic links. ", "minLength": 1, "title": "realpath", "type": "string", "_name_": "realpath", "_required_": true}, "type": {"description": "Type of filesystem entry.", "enum": ["DIRECTORY", "FILE", "SYMLINK", "OTHER"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "size": {"description": "Size in bytes of a plain file. This corresonds with stx_size. ", "title": "size", "type": "integer", "_name_": "size", "_required_": true}, "allocation_size": {"description": "Allocated size of file. Calculated by multiplying stx_blocks by 512. ", "title": "allocation_size", "type": "integer", "_name_": "allocation_size", "_required_": true}, "mode": {"description": "Entry's mode including file type information and file permission bits. This corresponds with stx_mode. ", "title": "mode", "type": "integer", "_name_": "mode", "_required_": true}, "mount_id": {"description": "The mount ID of the mount containing the entry. This corresponds to the number in first field of /proc/self/mountinfo and stx_mnt_id. ", "title": "mount_id", "type": "integer", "_name_": "mount_id", "_required_": true}, "uid": {"description": "User ID of the entry's owner. This corresponds with stx_uid. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": true}, "gid": {"description": "Group ID of the entry's owner. This corresponds with stx_gid. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "atime": {"description": "Time of last access. Corresponds with stx_atime. This is mutable from userspace. ", "title": "atime", "type": "number", "_name_": "atime", "_required_": true}, "mtime": {"description": "Time of last modification. Corresponds with stx_mtime. This is mutable from userspace. ", "title": "mtime", "type": "number", "_name_": "mtime", "_required_": true}, "ctime": {"description": "Time of last status change. Corresponds with stx_ctime. ", "title": "ctime", "type": "number", "_name_": "ctime", "_required_": true}, "btime": {"description": "Time of creation. Corresponds with stx_btime. ", "title": "btime", "type": "number", "_name_": "btime", "_required_": true}, "dev": {"description": "The ID of the device containing the filesystem where the file resides. This is not sufficient to uniquely identify a particular filesystem mount. mount_id must be used for that purpose. This corresponds with st_dev. ", "title": "dev", "type": "integer", "_name_": "dev", "_required_": true}, "inode": {"description": "The inode number of the file. This corresponds with stx_ino. ", "title": "inode", "type": "integer", "_name_": "inode", "_required_": true}, "nlink": {"description": "Number of hard links. Corresponds with stx_nlinks. ", "title": "nlink", "type": "integer", "_name_": "nlink", "_required_": true}, "acl": {"description": "Specifies whether ACL is present on the entry. If this is the case then file permission bits as reported in `mode` may not be representative of the actual permissions. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": true}, "is_mountpoint": {"description": "Specifies whether the entry is also the mountpoint of a filesystem. ", "title": "is_mountpoint", "type": "boolean", "_name_": "is_mountpoint", "_required_": true}, "is_ctldir": {"description": "Specifies whether the entry is located within the ZFS ctldir (for example a snapshot). ", "title": "is_ctldir", "type": "boolean", "_name_": "is_ctldir", "_required_": true}, "attributes": {"description": "Extra file attribute indicators for entry as returned by statx. Expanded from stx_attributes. ", "items": [{"enum": ["COMPRESSED", "APPEND", "NODUMP", "IMMUTABLE", "AUTOMOUNT", "MOUNT_ROOT", "VERIFY", "DAX"], "type": "string"}], "title": "attributes", "type": "array", "_name_": "attributes", "_required_": true}, "user": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Username associated with `uid`. Will be None if the User ID does not map to existing user. ", "title": "user", "_name_": "user", "_required_": true}, "group": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Groupname associated with `gid`. Will be None if the Group ID does not map to existing group. ", "title": "group", "_name_": "group", "_required_": true}}, "required": ["realpath", "type", "size", "allocation_size", "mode", "mount_id", "uid", "gid", "atime", "mtime", "ctime", "btime", "dev", "inode", "nlink", "acl", "is_mountpoint", "is_ctldir", "attributes", "user", "group"], "title": "result", "type": "object", "description": "File or directory statistics information.", "_name_": "result", "_required_": true, "_attrs_order_": ["realpath", "type", "size", "allocation_size", "mode", "mount_id", "uid", "gid", "atime", "mtime", "ctime", "btime", "dev", "inode", "nlink", "acl", "is_mountpoint", "is_ctldir", "attributes", "user", "group"]}]}, "filesystem.statfs": {"description": "Return stats from the filesystem of a given path.\n\nRaises:\n CallError(ENOENT) - Path not found", "cli_description": "Return stats from the filesystem of a given path", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Path on the filesystem to get statistics for.", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"flags": {"description": "Combined per-mount options and per-superblock options for mounted filesystem. ", "items": [{"anyOf": [{"enum": ["RW", "RO", "XATTR", "NOACL", "NFS4ACL", "POSIXACL", "CASESENSITIVE", "CASEINSENSITIVE", "NOATIME", "RELATIME", "NOSUID", "NODEV", "NOEXEC"], "type": "string"}, {}]}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}, "fsid": {"description": "Unique filesystem ID as returned by statvfs. ", "minLength": 1, "title": "fsid", "type": "string", "_name_": "fsid", "_required_": true}, "fstype": {"anyOf": [{"enum": ["RW", "RO", "XATTR", "NOACL", "NFS4ACL", "POSIXACL", "CASESENSITIVE", "CASEINSENSITIVE", "NOATIME", "RELATIME", "NOSUID", "NODEV", "NOEXEC"], "type": "string"}, {}], "description": "String representation of filesystem type from mountinfo. ", "title": "fstype", "_name_": "fstype", "_required_": true}, "source": {"description": "Source for the mounted filesystem. For ZFS this will be dataset name. ", "minLength": 1, "title": "source", "type": "string", "_name_": "source", "_required_": true}, "dest": {"description": "Local path on which filesystem is mounted. ", "minLength": 1, "title": "dest", "type": "string", "_name_": "dest", "_required_": true}, "blocksize": {"description": "Filesystem block size as reported by statvfs. ", "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": true}, "total_blocks": {"description": "Filesystem size as reported in blocksize blocks as reported by statvfs. ", "title": "total_blocks", "type": "integer", "_name_": "total_blocks", "_required_": true}, "free_blocks": {"description": "Number of free blocks as reported by statvfs. ", "title": "free_blocks", "type": "integer", "_name_": "free_blocks", "_required_": true}, "avail_blocks": {"description": "Number of available blocks as reported by statvfs. ", "title": "avail_blocks", "type": "integer", "_name_": "avail_blocks", "_required_": true}, "total_blocks_str": {"description": "Total filesystem size in blocks as a human-readable string.", "minLength": 1, "title": "total_blocks_str", "type": "string", "_name_": "total_blocks_str", "_required_": true}, "free_blocks_str": {"description": "Free blocks available as a human-readable string.", "minLength": 1, "title": "free_blocks_str", "type": "string", "_name_": "free_blocks_str", "_required_": true}, "avail_blocks_str": {"description": "Available blocks for unprivileged users as a human-readable string.", "minLength": 1, "title": "avail_blocks_str", "type": "string", "_name_": "avail_blocks_str", "_required_": true}, "files": {"description": "Number of inodes in use as reported by statvfs. ", "title": "files", "type": "integer", "_name_": "files", "_required_": true}, "free_files": {"description": "Number of free inodes as reported by statvfs. ", "title": "free_files", "type": "integer", "_name_": "free_files", "_required_": true}, "name_max": {"description": "Maximum filename length as reported by statvfs. ", "title": "name_max", "type": "integer", "_name_": "name_max", "_required_": true}, "total_bytes": {"description": "Total filesystem size in bytes.", "title": "total_bytes", "type": "integer", "_name_": "total_bytes", "_required_": true}, "free_bytes": {"description": "Free space available in bytes.", "title": "free_bytes", "type": "integer", "_name_": "free_bytes", "_required_": true}, "avail_bytes": {"description": "Available space for unprivileged users in bytes.", "title": "avail_bytes", "type": "integer", "_name_": "avail_bytes", "_required_": true}, "total_bytes_str": {"description": "Total filesystem size in bytes as a human-readable string.", "minLength": 1, "title": "total_bytes_str", "type": "string", "_name_": "total_bytes_str", "_required_": true}, "free_bytes_str": {"description": "Free space available in bytes as a human-readable string.", "minLength": 1, "title": "free_bytes_str", "type": "string", "_name_": "free_bytes_str", "_required_": true}, "avail_bytes_str": {"description": "Available space for unprivileged users in bytes as a human-readable string.", "minLength": 1, "title": "avail_bytes_str", "type": "string", "_name_": "avail_bytes_str", "_required_": true}}, "required": ["flags", "fsid", "fstype", "source", "dest", "blocksize", "total_blocks", "free_blocks", "avail_blocks", "total_blocks_str", "free_blocks_str", "avail_blocks_str", "files", "free_files", "name_max", "total_bytes", "free_bytes", "avail_bytes", "total_bytes_str", "free_bytes_str", "avail_bytes_str"], "title": "result", "type": "object", "description": "Filesystem statistics and mount information.", "_name_": "result", "_required_": true, "_attrs_order_": ["flags", "fsid", "fstype", "source", "dest", "blocksize", "total_blocks", "free_blocks", "avail_blocks", "total_blocks_str", "free_blocks_str", "avail_blocks_str", "files", "free_files", "name_max", "total_bytes", "free_bytes", "avail_bytes", "total_bytes_str", "free_bytes_str", "avail_bytes_str"]}]}, "filesystem.acltemplate.by_path": {"description": "Retrieve list of available ACL templates for a given `path`.\n\nSupports `query-filters` and `query-options`.\n`format-options` gives additional options to alter the results of\nthe template query:\n\n`canonicalize` - place ACL entries for NFSv4 ACLs in Microsoft canonical order.\n`ensure_builtins` - ensure all results contain entries for `builtin_users` and `builtin_administrators`\ngroups.\n`resolve_names` - convert ids in ACL entries into names.", "cli_description": "Retrieve list of available ACL templates for a given `path`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"path": {"default": "", "description": "Filesystem path to filter templates by compatibility or empty string for all.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "query-filters": {"default": [], "description": "Query filters to apply when selecting templates.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "query-filters", "type": "array", "_name_": "query-filters", "_required_": false}, "query-options": {"additionalProperties": false, "description": "Query options for pagination and ordering of results.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "query-options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "query-options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}, "format-options": {"additionalProperties": false, "properties": {"canonicalize": {"default": false, "description": "Whether to normalize and canonicalize ACL entries in the response.", "title": "canonicalize", "type": "boolean", "_name_": "canonicalize", "_required_": false}, "ensure_builtins": {"default": false, "description": "Whether to ensure built-in templates are included in the response.", "title": "ensure_builtins", "type": "boolean", "_name_": "ensure_builtins", "_required_": false}, "resolve_names": {"default": false, "description": "Whether to resolve numeric user/group IDs to names in ACL entries.", "title": "resolve_names", "type": "boolean", "_name_": "resolve_names", "_required_": false}}, "title": "format-options", "type": "object", "default": {"canonicalize": false, "ensure_builtins": false, "resolve_names": false}, "description": "Formatting options for how template data is returned.", "_name_": "format-options", "_required_": false, "_attrs_order_": ["canonicalize", "ensure_builtins", "resolve_names"]}}, "title": "filesystem_acl", "type": "object", "description": "ACLTemplateByPathArgs parameters.", "_name_": "filesystem_acl", "_required_": true, "_attrs_order_": ["path", "query-filters", "query-options", "format-options"]}], "returns": [{"description": "Array of ACL templates matching the query criteria.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the ACL template.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin": {"description": "Whether this is a built-in system template or user-created.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "builtin", "name", "acltype", "acl"], "title": "AclTemplateEntry", "type": "object", "_attrs_order_": ["id", "builtin", "name", "acltype", "acl", "comment"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "filesystem.acltemplate.create": {"description": "Create a new filesystem ACL template.", "cli_description": "Create a new filesystem ACL template", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["name", "acltype", "acl"], "title": "acltemplate_create", "type": "object", "description": "ACL template configuration data for the new template.", "_name_": "acltemplate_create", "_required_": true, "_attrs_order_": ["name", "acltype", "acl", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the ACL template.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin": {"description": "Whether this is a built-in system template or user-created.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "builtin", "name", "acltype", "acl"], "title": "result", "type": "object", "description": "The created ACL template configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "builtin", "name", "acltype", "acl", "comment"]}]}, "filesystem.acltemplate.delete": {"description": null, "cli_description": "", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"description": "ID of the ACL template to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the ACL template is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "filesystem.acltemplate.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the ACL template.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin": {"description": "Whether this is a built-in system template or user-created.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "builtin", "name", "acltype", "acl"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "builtin", "name", "acltype", "acl", "comment"]}]}, "filesystem.acltemplate.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_READ", "FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the ACL template.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "builtin": {"description": "Whether this is a built-in system template or user-created.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": false}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": false}, "comment": {"description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "AclTemplateQueryResultItem", "type": "object", "_attrs_order_": ["id", "builtin", "name", "acltype", "acl", "comment"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the ACL template.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "builtin": {"description": "Whether this is a built-in system template or user-created.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": false}, "acl": {"anyOf": [{"items": [{}], "type": "array"}, {"items": [{}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": false}, "comment": {"description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "AclTemplateQueryResultItem", "type": "object", "_attrs_order_": ["id", "builtin", "name", "acltype", "acl", "comment"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "filesystem.acltemplate.update": {"description": "update filesystem ACL template with `id`.", "cli_description": "update filesystem ACL template with `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FILESYSTEM_ATTRS_WRITE", "FILESYSTEM_FULL_CONTROL", "SHARING_ADMIN"], "accepts": [{"description": "ID of the ACL template to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": false}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": false}, "comment": {"description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "acltemplate_update", "type": "object", "description": "Updated ACL template configuration data.", "_name_": "acltemplate_update", "_required_": true, "_attrs_order_": ["name", "acltype", "acl", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the ACL template.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin": {"description": "Whether this is a built-in system template or user-created.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "name": {"description": "Human-readable name for the ACL template.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "acltype": {"description": "ACL type this template provides.", "enum": ["NFS4", "POSIX1E"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": true}, "acl": {"anyOf": [{"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this ACE.\n\n* `owner@`: File/directory owner\n* `group@`: File/directory primary group\n* `everyone@`: All users\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["owner@", "group@", "everyone@", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "type": {"description": "Access control type.\n\n* `ALLOW`: Grant the specified permissions\n* `DENY`: Explicitly deny the specified permissions", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "perms": {"anyOf": [{"additionalProperties": false, "properties": {"READ_DATA": {"default": false, "description": "Permission to read file data or list directory contents.", "title": "READ_DATA", "type": "boolean", "_name_": "READ_DATA", "_required_": false}, "WRITE_DATA": {"default": false, "description": "Permission to write file data or create files in directory.", "title": "WRITE_DATA", "type": "boolean", "_name_": "WRITE_DATA", "_required_": false}, "APPEND_DATA": {"default": false, "description": "Permission to append data to files or create subdirectories.", "title": "APPEND_DATA", "type": "boolean", "_name_": "APPEND_DATA", "_required_": false}, "READ_NAMED_ATTRS": {"default": false, "description": "Permission to read named attributes (extended attributes).", "title": "READ_NAMED_ATTRS", "type": "boolean", "_name_": "READ_NAMED_ATTRS", "_required_": false}, "WRITE_NAMED_ATTRS": {"default": false, "description": "Permission to write named attributes (extended attributes).", "title": "WRITE_NAMED_ATTRS", "type": "boolean", "_name_": "WRITE_NAMED_ATTRS", "_required_": false}, "EXECUTE": {"default": false, "description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": false}, "DELETE": {"default": false, "description": "Permission to delete the file or directory.", "title": "DELETE", "type": "boolean", "_name_": "DELETE", "_required_": false}, "DELETE_CHILD": {"default": false, "description": "Permission to delete child files within a directory.", "title": "DELETE_CHILD", "type": "boolean", "_name_": "DELETE_CHILD", "_required_": false}, "READ_ATTRIBUTES": {"default": false, "description": "Permission to read basic file attributes (size, timestamps, etc.).", "title": "READ_ATTRIBUTES", "type": "boolean", "_name_": "READ_ATTRIBUTES", "_required_": false}, "WRITE_ATTRIBUTES": {"default": false, "description": "Permission to write basic file attributes.", "title": "WRITE_ATTRIBUTES", "type": "boolean", "_name_": "WRITE_ATTRIBUTES", "_required_": false}, "READ_ACL": {"default": false, "description": "Permission to read the Access Control List.", "title": "READ_ACL", "type": "boolean", "_name_": "READ_ACL", "_required_": false}, "WRITE_ACL": {"default": false, "description": "Permission to modify the Access Control List.", "title": "WRITE_ACL", "type": "boolean", "_name_": "WRITE_ACL", "_required_": false}, "WRITE_OWNER": {"default": false, "description": "Permission to change the file owner.", "title": "WRITE_OWNER", "type": "boolean", "_name_": "WRITE_OWNER", "_required_": false}, "SYNCHRONIZE": {"default": false, "description": "Permission to use the file/directory as a synchronization primitive.", "title": "SYNCHRONIZE", "type": "boolean", "_name_": "SYNCHRONIZE", "_required_": false}}, "title": "NFS4ACE_AdvancedPerms", "type": "object", "_attrs_order_": ["READ_DATA", "WRITE_DATA", "APPEND_DATA", "READ_NAMED_ATTRS", "WRITE_NAMED_ATTRS", "EXECUTE", "DELETE", "DELETE_CHILD", "READ_ATTRIBUTES", "WRITE_ATTRIBUTES", "READ_ACL", "WRITE_ACL", "WRITE_OWNER", "SYNCHRONIZE"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic permission level for NFS4 ACE.\n\n* `FULL_CONTROL`: Full read, write, execute, and administrative permissions\n* `MODIFY`: Read, write, and execute permissions\n* `READ`: Read-only permissions\n* `TRAVERSE`: Execute/traverse permissions only", "enum": ["FULL_CONTROL", "MODIFY", "READ", "TRAVERSE"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicPerms", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Permissions granted or denied by this ACE.", "title": "perms", "_name_": "perms", "_required_": true}, "flags": {"anyOf": [{"additionalProperties": false, "properties": {"FILE_INHERIT": {"default": false, "description": "Apply this ACE to files within directories.", "title": "FILE_INHERIT", "type": "boolean", "_name_": "FILE_INHERIT", "_required_": false}, "DIRECTORY_INHERIT": {"default": false, "description": "Apply this ACE to subdirectories within directories.", "title": "DIRECTORY_INHERIT", "type": "boolean", "_name_": "DIRECTORY_INHERIT", "_required_": false}, "NO_PROPAGATE_INHERIT": {"default": false, "description": "Do not propagate inheritance beyond immediate children.", "title": "NO_PROPAGATE_INHERIT", "type": "boolean", "_name_": "NO_PROPAGATE_INHERIT", "_required_": false}, "INHERIT_ONLY": {"default": false, "description": "This ACE only affects inheritance, not the object itself.", "title": "INHERIT_ONLY", "type": "boolean", "_name_": "INHERIT_ONLY", "_required_": false}, "INHERITED": {"default": false, "description": "This ACE was inherited from a parent directory.", "title": "INHERITED", "type": "boolean", "_name_": "INHERITED", "_required_": false}}, "title": "NFS4ACE_AdvancedFlags", "type": "object", "_attrs_order_": ["FILE_INHERIT", "DIRECTORY_INHERIT", "NO_PROPAGATE_INHERIT", "INHERIT_ONLY", "INHERITED"]}, {"additionalProperties": false, "properties": {"BASIC": {"description": "Basic inheritance behavior for NFS4 ACE.\n\n* `INHERIT`: Apply to child files and directories\n* `NOINHERIT`: Do not apply to child objects", "enum": ["INHERIT", "NOINHERIT"], "title": "BASIC", "type": "string", "_name_": "BASIC", "_required_": true}}, "required": ["BASIC"], "title": "NFS4ACE_BasicFlags", "type": "object", "_attrs_order_": ["BASIC"]}], "description": "Inheritance and other behavioral flags for this ACE.", "title": "flags", "_name_": "flags", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "UID or GID when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when `tag` is \"USER\" or \"GROUP\". `null` for special entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "type", "perms", "flags"], "title": "NFS4ACE", "type": "object", "_attrs_order_": ["tag", "type", "perms", "flags", "id", "who"]}], "type": "array"}, {"items": [{"additionalProperties": false, "properties": {"tag": {"description": "Subject type for this POSIX ACE.\n\n* `USER_OBJ`: File/directory owner\n* `GROUP_OBJ`: File/directory primary group\n* `OTHER`: All other users\n* `MASK`: Maximum permissions for named users and groups\n* `USER`: Specific user account\n* `GROUP`: Specific group", "enum": ["USER_OBJ", "GROUP_OBJ", "OTHER", "MASK", "USER", "GROUP"], "title": "tag", "type": "string", "_name_": "tag", "_required_": true}, "perms": {"additionalProperties": false, "properties": {"READ": {"description": "Permission to read file contents or list directory contents.", "title": "READ", "type": "boolean", "_name_": "READ", "_required_": true}, "WRITE": {"description": "Permission to write file contents or create/delete files in directory.", "title": "WRITE", "type": "boolean", "_name_": "WRITE", "_required_": true}, "EXECUTE": {"description": "Permission to execute files or traverse directories.", "title": "EXECUTE", "type": "boolean", "_name_": "EXECUTE", "_required_": true}}, "required": ["READ", "WRITE", "EXECUTE"], "title": "perms", "type": "object", "description": "Read, write, and execute permissions for this ACE.", "_name_": "perms", "_required_": true, "_attrs_order_": ["READ", "WRITE", "EXECUTE"]}, "default": {"type": "boolean", "description": "Whether this is a default ACE that applies to newly created child objects.", "title": "default", "_name_": "default", "_required_": true}, "id": {"anyOf": [{"maximum": 2147483647, "minimum": -1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Numeric user or group ID when tag is `USER` or `GROUP`. `null` for object entries.", "title": "id", "_name_": "id", "_required_": false}, "who": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Username or group name when tag is `USER` or `GROUP`. `null` for object entries.", "title": "who", "_name_": "who", "_required_": false}}, "required": ["tag", "perms", "default"], "title": "POSIXACE", "type": "object", "_attrs_order_": ["tag", "perms", "default", "id", "who"]}], "type": "array"}], "description": "Array of Access Control Entries defined by this template.", "title": "acl", "_name_": "acl", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment about the template's purpose.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "builtin", "name", "acltype", "acl"], "title": "result", "type": "object", "description": "The updated ACL template configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "builtin", "name", "acltype", "acl", "comment"]}]}, "ftp.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_FTP_READ", "SHARING_FTP_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"description": "TCP port number on which the FTP service listens for incoming connections.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "clients": {"description": "Maximum number of simultaneous client connections allowed.", "maximum": 10000, "minimum": 1, "title": "clients", "type": "integer", "_name_": "clients", "_required_": true}, "ipconnections": {"description": "Maximum number of connections allowed from a single IP address. 0 means unlimited.", "maximum": 1000, "minimum": 0, "title": "ipconnections", "type": "integer", "_name_": "ipconnections", "_required_": true}, "loginattempt": {"description": "Maximum number of failed login attempts before blocking an IP address. 0 disables this limit.", "maximum": 1000, "minimum": 0, "title": "loginattempt", "type": "integer", "_name_": "loginattempt", "_required_": true}, "timeout": {"description": "Idle timeout in seconds before disconnecting inactive clients. 0 disables timeout.", "maximum": 10000, "minimum": 0, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": true}, "timeout_notransfer": {"description": "Timeout in seconds for clients that connect but do not transfer data. 0 disables timeout.", "maximum": 10000, "minimum": 0, "title": "timeout_notransfer", "type": "integer", "_name_": "timeout_notransfer", "_required_": true}, "onlyanonymous": {"description": "Whether to allow only anonymous FTP access, disabling authenticated user login.", "title": "onlyanonymous", "type": "boolean", "_name_": "onlyanonymous", "_required_": true}, "anonpath": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path for anonymous FTP users. `null` to use the default anonymous FTP directory.", "title": "anonpath", "_name_": "anonpath", "_required_": true}, "onlylocal": {"description": "Whether to allow only local system users to login, disabling anonymous access.", "title": "onlylocal", "type": "boolean", "_name_": "onlylocal", "_required_": true}, "banner": {"description": "Welcome message displayed to FTP clients upon connection.", "title": "banner", "type": "string", "_name_": "banner", "_required_": true}, "filemask": {"description": "Default Unix permissions (umask) for files created by FTP users.", "title": "filemask", "type": "string", "_name_": "filemask", "_required_": true}, "dirmask": {"description": "Default Unix permissions (umask) for directories created by FTP users.", "title": "dirmask", "type": "string", "_name_": "dirmask", "_required_": true}, "fxp": {"description": "Whether to enable File eXchange Protocol (FXP) for server-to-server transfers.", "title": "fxp", "type": "boolean", "_name_": "fxp", "_required_": true}, "resume": {"description": "Whether to allow clients to resume interrupted file transfers.", "title": "resume", "type": "boolean", "_name_": "resume", "_required_": true}, "defaultroot": {"description": "Whether to restrict users to their home directories (chroot jail).", "title": "defaultroot", "type": "boolean", "_name_": "defaultroot", "_required_": true}, "ident": {"description": "Whether to perform RFC 1413 ident lookups on connecting clients.", "title": "ident", "type": "boolean", "_name_": "ident", "_required_": true}, "reversedns": {"description": "Whether to perform reverse DNS lookups on client IP addresses for logging.", "title": "reversedns", "type": "boolean", "_name_": "reversedns", "_required_": true}, "masqaddress": {"description": "Public IP address to advertise to clients for passive mode connections when behind NAT.", "title": "masqaddress", "type": "string", "_name_": "masqaddress", "_required_": true}, "passiveportsmin": {"description": "Minimum port number for passive mode data connections. Must be 0 or between 1024-65535.", "title": "passiveportsmin", "type": "integer", "_name_": "passiveportsmin", "_required_": true}, "passiveportsmax": {"description": "Maximum port number for passive mode data connections. Must be 0 or between 1024-65535.", "title": "passiveportsmax", "type": "integer", "_name_": "passiveportsmax", "_required_": true}, "localuserbw": {"description": "Maximum upload bandwidth in KiB/s for local users. 0 means unlimited.", "minimum": 0, "title": "localuserbw", "type": "integer", "_name_": "localuserbw", "_required_": true}, "localuserdlbw": {"description": "Maximum download bandwidth in KiB/s for local users. 0 means unlimited.", "minimum": 0, "title": "localuserdlbw", "type": "integer", "_name_": "localuserdlbw", "_required_": true}, "anonuserbw": {"description": "Maximum upload bandwidth in KiB/s for anonymous users. 0 means unlimited.", "minimum": 0, "title": "anonuserbw", "type": "integer", "_name_": "anonuserbw", "_required_": true}, "anonuserdlbw": {"description": "Maximum download bandwidth in KiB/s for anonymous users. 0 means unlimited.", "minimum": 0, "title": "anonuserdlbw", "type": "integer", "_name_": "anonuserdlbw", "_required_": true}, "tls": {"description": "Whether to enable TLS/SSL encryption for FTP connections.", "title": "tls", "type": "boolean", "_name_": "tls", "_required_": true}, "tls_policy": {"description": "TLS policy for connections. Values include: `\"on\"` (required), `\"off\"` (disabled), `\"data\"` (data only), `\"auth\"` (authentication only), `\"ctrl\"` (control only), or combinations with `+` and `!` modifiers.", "enum": ["", "on", "off", "data", "!data", "auth", "ctrl", "ctrl+data", "ctrl+!data", "auth+data", "auth+!data"], "title": "tls_policy", "type": "string", "_name_": "tls_policy", "_required_": true}, "tls_opt_allow_client_renegotiations": {"description": "Whether to allow TLS clients to initiate renegotiation of the TLS connection.", "title": "tls_opt_allow_client_renegotiations", "type": "boolean", "_name_": "tls_opt_allow_client_renegotiations", "_required_": true}, "tls_opt_allow_dot_login": {"description": "Whether to allow .ftpaccess files to override TLS requirements for specific users.", "title": "tls_opt_allow_dot_login", "type": "boolean", "_name_": "tls_opt_allow_dot_login", "_required_": true}, "tls_opt_allow_per_user": {"description": "Whether to allow per-user TLS configuration overrides.", "title": "tls_opt_allow_per_user", "type": "boolean", "_name_": "tls_opt_allow_per_user", "_required_": true}, "tls_opt_common_name_required": {"description": "Whether to require client certificates to have a Common Name field.", "title": "tls_opt_common_name_required", "type": "boolean", "_name_": "tls_opt_common_name_required", "_required_": true}, "tls_opt_enable_diags": {"description": "Whether to enable detailed TLS diagnostic logging.", "title": "tls_opt_enable_diags", "type": "boolean", "_name_": "tls_opt_enable_diags", "_required_": true}, "tls_opt_export_cert_data": {"description": "Whether to export client certificate data to environment variables.", "title": "tls_opt_export_cert_data", "type": "boolean", "_name_": "tls_opt_export_cert_data", "_required_": true}, "tls_opt_no_empty_fragments": {"description": "Whether to disable empty TLS record fragments to improve compatibility with some clients. Disabling increases vulnerability to some attack vectors.", "title": "tls_opt_no_empty_fragments", "type": "boolean", "_name_": "tls_opt_no_empty_fragments", "_required_": true}, "tls_opt_no_session_reuse_required": {"description": "Whether to disable the requirement for TLS session reuse.", "title": "tls_opt_no_session_reuse_required", "type": "boolean", "_name_": "tls_opt_no_session_reuse_required", "_required_": true}, "tls_opt_stdenvvars": {"description": "Whether to export standard TLS environment variables for use by external programs.", "title": "tls_opt_stdenvvars", "type": "boolean", "_name_": "tls_opt_stdenvvars", "_required_": true}, "tls_opt_dns_name_required": {"description": "Whether to require client certificates to contain a DNS name in the Subject Alternative Name extension. The `reversedns` setting must also be enabled.", "title": "tls_opt_dns_name_required", "type": "boolean", "_name_": "tls_opt_dns_name_required", "_required_": true}, "tls_opt_ip_address_required": {"description": "Whether to require client certificates to contain an IP address in the Subject Alternative Name extension.", "title": "tls_opt_ip_address_required", "type": "boolean", "_name_": "tls_opt_ip_address_required", "_required_": true}, "ssltls_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the certificate to use for TLS/SSL connections. `null` to use the default system certificate.", "title": "ssltls_certificate", "_name_": "ssltls_certificate", "_required_": true}, "options": {"description": "Additional ProFTPD configuration directives to include in the server configuration. Manual directives may render the FTP service non-functional and should be used with caution.", "title": "options", "type": "string", "_name_": "options", "_required_": true}}, "required": ["id", "port", "clients", "ipconnections", "loginattempt", "timeout", "timeout_notransfer", "onlyanonymous", "anonpath", "onlylocal", "banner", "filemask", "dirmask", "fxp", "resume", "defaultroot", "ident", "reversedns", "masqaddress", "passiveportsmin", "passiveportsmax", "localuserbw", "localuserdlbw", "anonuserbw", "anonuserdlbw", "tls", "tls_policy", "tls_opt_allow_client_renegotiations", "tls_opt_allow_dot_login", "tls_opt_allow_per_user", "tls_opt_common_name_required", "tls_opt_enable_diags", "tls_opt_export_cert_data", "tls_opt_no_empty_fragments", "tls_opt_no_session_reuse_required", "tls_opt_stdenvvars", "tls_opt_dns_name_required", "tls_opt_ip_address_required", "ssltls_certificate", "options"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "clients", "ipconnections", "loginattempt", "timeout", "timeout_notransfer", "onlyanonymous", "anonpath", "onlylocal", "banner", "filemask", "dirmask", "fxp", "resume", "defaultroot", "ident", "reversedns", "masqaddress", "passiveportsmin", "passiveportsmax", "localuserbw", "localuserdlbw", "anonuserbw", "anonuserdlbw", "tls", "tls_policy", "tls_opt_allow_client_renegotiations", "tls_opt_allow_dot_login", "tls_opt_allow_per_user", "tls_opt_common_name_required", "tls_opt_enable_diags", "tls_opt_export_cert_data", "tls_opt_no_empty_fragments", "tls_opt_no_session_reuse_required", "tls_opt_stdenvvars", "tls_opt_dns_name_required", "tls_opt_ip_address_required", "ssltls_certificate", "options"]}]}, "ftp.update": {"description": "Update ftp service configuration.\n\n`clients` is an integer value which sets the maximum number of simultaneous clients allowed. It defaults to 32.\n\n`ipconnections` is an integer value which shows the maximum number of connections per IP address. It defaults\nto 0 which equals to unlimited.\n\n`timeout` is the maximum number of seconds that proftpd will allow clients to stay connected without receiving\nany data on either the control or data connection.\n\n`timeout_notransfer` is the maximum number of seconds a client is allowed to spend connected, after\nauthentication, without issuing a command which results in creating an active or passive data connection\n(i.e. sending/receiving a file, or receiving a directory listing).\n\n`onlyanonymous` allows anonymous FTP logins with access to the directory specified by `anonpath`.\n\n`banner` is a message displayed to local login users after they successfully authenticate. It is not displayed\nto anonymous login users.\n\n`filemask` sets the default permissions for newly created files which by default are 077.\n\n`dirmask` sets the default permissions for newly created directories which by default are 077.\n\n`resume` if set allows FTP clients to resume interrupted transfers.\n\n`fxp` if set to true indicates that File eXchange Protocol is enabled. Generally it is discouraged as it\nmakes the server vulnerable to FTP bounce attacks.\n\n`defaultroot` when set ensures that for local users, home directory access is only granted if the user\nis a member of group wheel.\n\n`ident` is a boolean value which when set to true indicates that IDENT authentication is required. If identd\nis not running on the client, this can result in timeouts.\n\n`masqaddress` is the public IP address or hostname which is set if FTP clients cannot connect through a\nNAT device.\n\n`localuserbw` is a positive integer value which indicates maximum upload bandwidth in KB/s for local user.\nDefault of zero indicates unlimited upload bandwidth ( from the FTP server configuration ).\n\n`localuserdlbw` is a positive integer value which indicates maximum download bandwidth in KB/s for local user.\nDefault of zero indicates unlimited download bandwidth ( from the FTP server configuration ).\n\n`anonuserbw` is a positive integer value which indicates maximum upload bandwidth in KB/s for anonymous user.\nDefault of zero indicates unlimited upload bandwidth ( from the FTP server configuration ).\n\n`anonuserdlbw` is a positive integer value which indicates maximum download bandwidth in KB/s for anonymous\nuser. Default of zero indicates unlimited download bandwidth ( from the FTP server configuration ).\n\n`tls` is a boolean value which when set indicates that encrypted connections are enabled. This requires a\ncertificate to be configured first with the certificate service and the id of certificate is passed on in\n`ssltls_certificate`.\n\n`tls_policy` defines whether the control channel, data channel, both channels, or neither channel of an FTP\nsession must occur over SSL/TLS.\n\n`tls_opt_enable_diags` is a boolean value when set, logs verbosely. This is helpful when troubleshooting a\nconnection.\n\n`options` is a string used to add proftpd(8) parameters not covered by ftp service.", "cli_description": "Update ftp service configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"port": {"description": "TCP port number on which the FTP service listens for incoming connections.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "clients": {"description": "Maximum number of simultaneous client connections allowed.", "maximum": 10000, "minimum": 1, "title": "clients", "type": "integer", "_name_": "clients", "_required_": false}, "ipconnections": {"description": "Maximum number of connections allowed from a single IP address. 0 means unlimited.", "maximum": 1000, "minimum": 0, "title": "ipconnections", "type": "integer", "_name_": "ipconnections", "_required_": false}, "loginattempt": {"description": "Maximum number of failed login attempts before blocking an IP address. 0 disables this limit.", "maximum": 1000, "minimum": 0, "title": "loginattempt", "type": "integer", "_name_": "loginattempt", "_required_": false}, "timeout": {"description": "Idle timeout in seconds before disconnecting inactive clients. 0 disables timeout.", "maximum": 10000, "minimum": 0, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "timeout_notransfer": {"description": "Timeout in seconds for clients that connect but do not transfer data. 0 disables timeout.", "maximum": 10000, "minimum": 0, "title": "timeout_notransfer", "type": "integer", "_name_": "timeout_notransfer", "_required_": false}, "onlyanonymous": {"description": "Whether to allow only anonymous FTP access, disabling authenticated user login.", "title": "onlyanonymous", "type": "boolean", "_name_": "onlyanonymous", "_required_": false}, "anonpath": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path for anonymous FTP users. `null` to use the default anonymous FTP directory.", "title": "anonpath", "_name_": "anonpath", "_required_": false}, "onlylocal": {"description": "Whether to allow only local system users to login, disabling anonymous access.", "title": "onlylocal", "type": "boolean", "_name_": "onlylocal", "_required_": false}, "banner": {"description": "Welcome message displayed to FTP clients upon connection.", "title": "banner", "type": "string", "_name_": "banner", "_required_": false}, "filemask": {"description": "Default Unix permissions (umask) for files created by FTP users.", "title": "filemask", "type": "string", "_name_": "filemask", "_required_": false}, "dirmask": {"description": "Default Unix permissions (umask) for directories created by FTP users.", "title": "dirmask", "type": "string", "_name_": "dirmask", "_required_": false}, "fxp": {"description": "Whether to enable File eXchange Protocol (FXP) for server-to-server transfers.", "title": "fxp", "type": "boolean", "_name_": "fxp", "_required_": false}, "resume": {"description": "Whether to allow clients to resume interrupted file transfers.", "title": "resume", "type": "boolean", "_name_": "resume", "_required_": false}, "defaultroot": {"description": "Whether to restrict users to their home directories (chroot jail).", "title": "defaultroot", "type": "boolean", "_name_": "defaultroot", "_required_": false}, "ident": {"description": "Whether to perform RFC 1413 ident lookups on connecting clients.", "title": "ident", "type": "boolean", "_name_": "ident", "_required_": false}, "reversedns": {"description": "Whether to perform reverse DNS lookups on client IP addresses for logging.", "title": "reversedns", "type": "boolean", "_name_": "reversedns", "_required_": false}, "masqaddress": {"description": "Public IP address to advertise to clients for passive mode connections when behind NAT.", "title": "masqaddress", "type": "string", "_name_": "masqaddress", "_required_": false}, "passiveportsmin": {"description": "Minimum port number for passive mode data connections. Must be 0 or between 1024-65535.", "title": "passiveportsmin", "type": "integer", "_name_": "passiveportsmin", "_required_": false}, "passiveportsmax": {"description": "Maximum port number for passive mode data connections. Must be 0 or between 1024-65535.", "title": "passiveportsmax", "type": "integer", "_name_": "passiveportsmax", "_required_": false}, "localuserbw": {"description": "Maximum upload bandwidth in KiB/s for local users. 0 means unlimited.", "minimum": 0, "title": "localuserbw", "type": "integer", "_name_": "localuserbw", "_required_": false}, "localuserdlbw": {"description": "Maximum download bandwidth in KiB/s for local users. 0 means unlimited.", "minimum": 0, "title": "localuserdlbw", "type": "integer", "_name_": "localuserdlbw", "_required_": false}, "anonuserbw": {"description": "Maximum upload bandwidth in KiB/s for anonymous users. 0 means unlimited.", "minimum": 0, "title": "anonuserbw", "type": "integer", "_name_": "anonuserbw", "_required_": false}, "anonuserdlbw": {"description": "Maximum download bandwidth in KiB/s for anonymous users. 0 means unlimited.", "minimum": 0, "title": "anonuserdlbw", "type": "integer", "_name_": "anonuserdlbw", "_required_": false}, "tls": {"description": "Whether to enable TLS/SSL encryption for FTP connections.", "title": "tls", "type": "boolean", "_name_": "tls", "_required_": false}, "tls_policy": {"description": "TLS policy for connections. Values include: `\"on\"` (required), `\"off\"` (disabled), `\"data\"` (data only), `\"auth\"` (authentication only), `\"ctrl\"` (control only), or combinations with `+` and `!` modifiers.", "enum": ["", "on", "off", "data", "!data", "auth", "ctrl", "ctrl+data", "ctrl+!data", "auth+data", "auth+!data"], "title": "tls_policy", "type": "string", "_name_": "tls_policy", "_required_": false}, "tls_opt_allow_client_renegotiations": {"description": "Whether to allow TLS clients to initiate renegotiation of the TLS connection.", "title": "tls_opt_allow_client_renegotiations", "type": "boolean", "_name_": "tls_opt_allow_client_renegotiations", "_required_": false}, "tls_opt_allow_dot_login": {"description": "Whether to allow .ftpaccess files to override TLS requirements for specific users.", "title": "tls_opt_allow_dot_login", "type": "boolean", "_name_": "tls_opt_allow_dot_login", "_required_": false}, "tls_opt_allow_per_user": {"description": "Whether to allow per-user TLS configuration overrides.", "title": "tls_opt_allow_per_user", "type": "boolean", "_name_": "tls_opt_allow_per_user", "_required_": false}, "tls_opt_common_name_required": {"description": "Whether to require client certificates to have a Common Name field.", "title": "tls_opt_common_name_required", "type": "boolean", "_name_": "tls_opt_common_name_required", "_required_": false}, "tls_opt_enable_diags": {"description": "Whether to enable detailed TLS diagnostic logging.", "title": "tls_opt_enable_diags", "type": "boolean", "_name_": "tls_opt_enable_diags", "_required_": false}, "tls_opt_export_cert_data": {"description": "Whether to export client certificate data to environment variables.", "title": "tls_opt_export_cert_data", "type": "boolean", "_name_": "tls_opt_export_cert_data", "_required_": false}, "tls_opt_no_empty_fragments": {"description": "Whether to disable empty TLS record fragments to improve compatibility with some clients. Disabling increases vulnerability to some attack vectors.", "title": "tls_opt_no_empty_fragments", "type": "boolean", "_name_": "tls_opt_no_empty_fragments", "_required_": false}, "tls_opt_no_session_reuse_required": {"description": "Whether to disable the requirement for TLS session reuse.", "title": "tls_opt_no_session_reuse_required", "type": "boolean", "_name_": "tls_opt_no_session_reuse_required", "_required_": false}, "tls_opt_stdenvvars": {"description": "Whether to export standard TLS environment variables for use by external programs.", "title": "tls_opt_stdenvvars", "type": "boolean", "_name_": "tls_opt_stdenvvars", "_required_": false}, "tls_opt_dns_name_required": {"description": "Whether to require client certificates to contain a DNS name in the Subject Alternative Name extension. The `reversedns` setting must also be enabled.", "title": "tls_opt_dns_name_required", "type": "boolean", "_name_": "tls_opt_dns_name_required", "_required_": false}, "tls_opt_ip_address_required": {"description": "Whether to require client certificates to contain an IP address in the Subject Alternative Name extension.", "title": "tls_opt_ip_address_required", "type": "boolean", "_name_": "tls_opt_ip_address_required", "_required_": false}, "ssltls_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the certificate to use for TLS/SSL connections. `null` to use the default system certificate.", "title": "ssltls_certificate", "_name_": "ssltls_certificate", "_required_": false}, "options": {"description": "Additional ProFTPD configuration directives to include in the server configuration. Manual directives may render the FTP service non-functional and should be used with caution.", "title": "options", "type": "string", "_name_": "options", "_required_": false}}, "title": "ftp_update", "type": "object", "description": "FTPUpdateArgs parameters.", "_name_": "ftp_update", "_required_": true, "_attrs_order_": ["port", "clients", "ipconnections", "loginattempt", "timeout", "timeout_notransfer", "onlyanonymous", "anonpath", "onlylocal", "banner", "filemask", "dirmask", "fxp", "resume", "defaultroot", "ident", "reversedns", "masqaddress", "passiveportsmin", "passiveportsmax", "localuserbw", "localuserdlbw", "anonuserbw", "anonuserdlbw", "tls", "tls_policy", "tls_opt_allow_client_renegotiations", "tls_opt_allow_dot_login", "tls_opt_allow_per_user", "tls_opt_common_name_required", "tls_opt_enable_diags", "tls_opt_export_cert_data", "tls_opt_no_empty_fragments", "tls_opt_no_session_reuse_required", "tls_opt_stdenvvars", "tls_opt_dns_name_required", "tls_opt_ip_address_required", "ssltls_certificate", "options"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"description": "TCP port number on which the FTP service listens for incoming connections.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "clients": {"description": "Maximum number of simultaneous client connections allowed.", "maximum": 10000, "minimum": 1, "title": "clients", "type": "integer", "_name_": "clients", "_required_": true}, "ipconnections": {"description": "Maximum number of connections allowed from a single IP address. 0 means unlimited.", "maximum": 1000, "minimum": 0, "title": "ipconnections", "type": "integer", "_name_": "ipconnections", "_required_": true}, "loginattempt": {"description": "Maximum number of failed login attempts before blocking an IP address. 0 disables this limit.", "maximum": 1000, "minimum": 0, "title": "loginattempt", "type": "integer", "_name_": "loginattempt", "_required_": true}, "timeout": {"description": "Idle timeout in seconds before disconnecting inactive clients. 0 disables timeout.", "maximum": 10000, "minimum": 0, "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": true}, "timeout_notransfer": {"description": "Timeout in seconds for clients that connect but do not transfer data. 0 disables timeout.", "maximum": 10000, "minimum": 0, "title": "timeout_notransfer", "type": "integer", "_name_": "timeout_notransfer", "_required_": true}, "onlyanonymous": {"description": "Whether to allow only anonymous FTP access, disabling authenticated user login.", "title": "onlyanonymous", "type": "boolean", "_name_": "onlyanonymous", "_required_": true}, "anonpath": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path for anonymous FTP users. `null` to use the default anonymous FTP directory.", "title": "anonpath", "_name_": "anonpath", "_required_": true}, "onlylocal": {"description": "Whether to allow only local system users to login, disabling anonymous access.", "title": "onlylocal", "type": "boolean", "_name_": "onlylocal", "_required_": true}, "banner": {"description": "Welcome message displayed to FTP clients upon connection.", "title": "banner", "type": "string", "_name_": "banner", "_required_": true}, "filemask": {"description": "Default Unix permissions (umask) for files created by FTP users.", "title": "filemask", "type": "string", "_name_": "filemask", "_required_": true}, "dirmask": {"description": "Default Unix permissions (umask) for directories created by FTP users.", "title": "dirmask", "type": "string", "_name_": "dirmask", "_required_": true}, "fxp": {"description": "Whether to enable File eXchange Protocol (FXP) for server-to-server transfers.", "title": "fxp", "type": "boolean", "_name_": "fxp", "_required_": true}, "resume": {"description": "Whether to allow clients to resume interrupted file transfers.", "title": "resume", "type": "boolean", "_name_": "resume", "_required_": true}, "defaultroot": {"description": "Whether to restrict users to their home directories (chroot jail).", "title": "defaultroot", "type": "boolean", "_name_": "defaultroot", "_required_": true}, "ident": {"description": "Whether to perform RFC 1413 ident lookups on connecting clients.", "title": "ident", "type": "boolean", "_name_": "ident", "_required_": true}, "reversedns": {"description": "Whether to perform reverse DNS lookups on client IP addresses for logging.", "title": "reversedns", "type": "boolean", "_name_": "reversedns", "_required_": true}, "masqaddress": {"description": "Public IP address to advertise to clients for passive mode connections when behind NAT.", "title": "masqaddress", "type": "string", "_name_": "masqaddress", "_required_": true}, "passiveportsmin": {"description": "Minimum port number for passive mode data connections. Must be 0 or between 1024-65535.", "title": "passiveportsmin", "type": "integer", "_name_": "passiveportsmin", "_required_": true}, "passiveportsmax": {"description": "Maximum port number for passive mode data connections. Must be 0 or between 1024-65535.", "title": "passiveportsmax", "type": "integer", "_name_": "passiveportsmax", "_required_": true}, "localuserbw": {"description": "Maximum upload bandwidth in KiB/s for local users. 0 means unlimited.", "minimum": 0, "title": "localuserbw", "type": "integer", "_name_": "localuserbw", "_required_": true}, "localuserdlbw": {"description": "Maximum download bandwidth in KiB/s for local users. 0 means unlimited.", "minimum": 0, "title": "localuserdlbw", "type": "integer", "_name_": "localuserdlbw", "_required_": true}, "anonuserbw": {"description": "Maximum upload bandwidth in KiB/s for anonymous users. 0 means unlimited.", "minimum": 0, "title": "anonuserbw", "type": "integer", "_name_": "anonuserbw", "_required_": true}, "anonuserdlbw": {"description": "Maximum download bandwidth in KiB/s for anonymous users. 0 means unlimited.", "minimum": 0, "title": "anonuserdlbw", "type": "integer", "_name_": "anonuserdlbw", "_required_": true}, "tls": {"description": "Whether to enable TLS/SSL encryption for FTP connections.", "title": "tls", "type": "boolean", "_name_": "tls", "_required_": true}, "tls_policy": {"description": "TLS policy for connections. Values include: `\"on\"` (required), `\"off\"` (disabled), `\"data\"` (data only), `\"auth\"` (authentication only), `\"ctrl\"` (control only), or combinations with `+` and `!` modifiers.", "enum": ["", "on", "off", "data", "!data", "auth", "ctrl", "ctrl+data", "ctrl+!data", "auth+data", "auth+!data"], "title": "tls_policy", "type": "string", "_name_": "tls_policy", "_required_": true}, "tls_opt_allow_client_renegotiations": {"description": "Whether to allow TLS clients to initiate renegotiation of the TLS connection.", "title": "tls_opt_allow_client_renegotiations", "type": "boolean", "_name_": "tls_opt_allow_client_renegotiations", "_required_": true}, "tls_opt_allow_dot_login": {"description": "Whether to allow .ftpaccess files to override TLS requirements for specific users.", "title": "tls_opt_allow_dot_login", "type": "boolean", "_name_": "tls_opt_allow_dot_login", "_required_": true}, "tls_opt_allow_per_user": {"description": "Whether to allow per-user TLS configuration overrides.", "title": "tls_opt_allow_per_user", "type": "boolean", "_name_": "tls_opt_allow_per_user", "_required_": true}, "tls_opt_common_name_required": {"description": "Whether to require client certificates to have a Common Name field.", "title": "tls_opt_common_name_required", "type": "boolean", "_name_": "tls_opt_common_name_required", "_required_": true}, "tls_opt_enable_diags": {"description": "Whether to enable detailed TLS diagnostic logging.", "title": "tls_opt_enable_diags", "type": "boolean", "_name_": "tls_opt_enable_diags", "_required_": true}, "tls_opt_export_cert_data": {"description": "Whether to export client certificate data to environment variables.", "title": "tls_opt_export_cert_data", "type": "boolean", "_name_": "tls_opt_export_cert_data", "_required_": true}, "tls_opt_no_empty_fragments": {"description": "Whether to disable empty TLS record fragments to improve compatibility with some clients. Disabling increases vulnerability to some attack vectors.", "title": "tls_opt_no_empty_fragments", "type": "boolean", "_name_": "tls_opt_no_empty_fragments", "_required_": true}, "tls_opt_no_session_reuse_required": {"description": "Whether to disable the requirement for TLS session reuse.", "title": "tls_opt_no_session_reuse_required", "type": "boolean", "_name_": "tls_opt_no_session_reuse_required", "_required_": true}, "tls_opt_stdenvvars": {"description": "Whether to export standard TLS environment variables for use by external programs.", "title": "tls_opt_stdenvvars", "type": "boolean", "_name_": "tls_opt_stdenvvars", "_required_": true}, "tls_opt_dns_name_required": {"description": "Whether to require client certificates to contain a DNS name in the Subject Alternative Name extension. The `reversedns` setting must also be enabled.", "title": "tls_opt_dns_name_required", "type": "boolean", "_name_": "tls_opt_dns_name_required", "_required_": true}, "tls_opt_ip_address_required": {"description": "Whether to require client certificates to contain an IP address in the Subject Alternative Name extension.", "title": "tls_opt_ip_address_required", "type": "boolean", "_name_": "tls_opt_ip_address_required", "_required_": true}, "ssltls_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the certificate to use for TLS/SSL connections. `null` to use the default system certificate.", "title": "ssltls_certificate", "_name_": "ssltls_certificate", "_required_": true}, "options": {"description": "Additional ProFTPD configuration directives to include in the server configuration. Manual directives may render the FTP service non-functional and should be used with caution.", "title": "options", "type": "string", "_name_": "options", "_required_": true}}, "required": ["id", "port", "clients", "ipconnections", "loginattempt", "timeout", "timeout_notransfer", "onlyanonymous", "anonpath", "onlylocal", "banner", "filemask", "dirmask", "fxp", "resume", "defaultroot", "ident", "reversedns", "masqaddress", "passiveportsmin", "passiveportsmax", "localuserbw", "localuserdlbw", "anonuserbw", "anonuserdlbw", "tls", "tls_policy", "tls_opt_allow_client_renegotiations", "tls_opt_allow_dot_login", "tls_opt_allow_per_user", "tls_opt_common_name_required", "tls_opt_enable_diags", "tls_opt_export_cert_data", "tls_opt_no_empty_fragments", "tls_opt_no_session_reuse_required", "tls_opt_stdenvvars", "tls_opt_dns_name_required", "tls_opt_ip_address_required", "ssltls_certificate", "options"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "clients", "ipconnections", "loginattempt", "timeout", "timeout_notransfer", "onlyanonymous", "anonpath", "onlylocal", "banner", "filemask", "dirmask", "fxp", "resume", "defaultroot", "ident", "reversedns", "masqaddress", "passiveportsmin", "passiveportsmax", "localuserbw", "localuserdlbw", "anonuserbw", "anonuserdlbw", "tls", "tls_policy", "tls_opt_allow_client_renegotiations", "tls_opt_allow_dot_login", "tls_opt_allow_per_user", "tls_opt_common_name_required", "tls_opt_enable_diags", "tls_opt_export_cert_data", "tls_opt_no_empty_fragments", "tls_opt_no_session_reuse_required", "tls_opt_stdenvvars", "tls_opt_dns_name_required", "tls_opt_ip_address_required", "ssltls_certificate", "options"]}]}, "group.create": {"description": "Create a new group.", "cli_description": "Create a new group", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"gid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "If `null`, it is automatically filled with the next one available.", "title": "gid", "_name_": "gid", "_required_": false}, "name": {"title": "name", "type": "string", "_name_": "name", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}}, "required": ["name"], "title": "group_create", "type": "object", "description": "Group configuration data for the new group.", "_name_": "group_create", "_required_": true, "_attrs_order_": ["gid", "name", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "users"]}], "returns": [{"description": "The API identifier of the newly created group.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "group.delete": {"description": "Delete group `id`.\n\nThe `delete_users` option deletes all users that have this group as their primary group.", "cli_description": "Delete group `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"description": "API identifier of the group to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"delete_users": {"default": false, "description": "Deletes all users that have this group as their primary group.", "title": "delete_users", "type": "boolean", "_name_": "delete_users", "_required_": false}}, "title": "options", "type": "object", "default": {"delete_users": false}, "description": "Options controlling group deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["delete_users"]}], "returns": [{"description": "The API identifier of the deleted group.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "group.get_group_obj": {"description": "Returns dictionary containing information from struct grp for the group specified by either\nthe `groupname` or `gid`.\n\nIf `sid_info` is specified then addition SMB / domain information is returned for the\ngroup.", "cli_description": "Returns dictionary containing information from struct grp for the group specified by either the `groupname` or `gid`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"groupname": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of the group to look up or `null`.", "title": "groupname", "_name_": "groupname", "_required_": false}, "gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Group ID to look up or `null`.", "title": "gid", "_name_": "gid", "_required_": false}, "sid_info": {"default": false, "description": "Whether to include SID information in the response.", "title": "sid_info", "type": "boolean", "_name_": "sid_info", "_required_": false}}, "title": "get_group_obj", "type": "object", "description": "GroupGetGroupObjArgs parameters.", "_name_": "get_group_obj", "_required_": true, "_attrs_order_": ["groupname", "gid", "sid_info"]}], "returns": [{"additionalProperties": false, "properties": {"gr_name": {"description": "Name of the group.", "title": "gr_name", "type": "string", "_name_": "gr_name", "_required_": true}, "gr_gid": {"description": "Group ID of the group.", "title": "gr_gid", "type": "integer", "_name_": "gr_gid", "_required_": true}, "gr_mem": {"description": "List of group names that are members of the group.", "items": [{"type": "string"}], "title": "gr_mem", "type": "array", "_name_": "gr_mem", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional SID value for the account that is present if `sid_info` is specified in payload.", "title": "sid", "_name_": "sid", "_required_": false}, "source": {"description": "The name server switch module that provided the user. Options are:\n\n* FILES: Local user in passwd file of server.\n* WINBIND: User provided by winbindd.\n* SSS: User provided by SSSD.", "enum": ["LOCAL", "ACTIVEDIRECTORY", "LDAP"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "local": {"description": "This group is local to the NAS or provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}}, "required": ["gr_name", "gr_gid", "gr_mem", "source", "local"], "title": "result", "type": "object", "description": "GroupGetGroupObjResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["gr_name", "gr_gid", "gr_mem", "sid", "source", "local"]}]}, "group.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}]}, "group.get_next_gid": {"description": "Get the next available/free gid.", "cli_description": "Get the next available/free gid", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "The next available group ID number.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "group.has_password REDACTED, "cli_description": "Checks whether at least one local user with a password REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Array of group IDs to check for password REDACTED, "items": [{"type": "integer"}], "title": "gids", "type": "array", "_name_": "gids", "_required_": true}, {"default": [], "description": "Array of user IDs to exclude from the check.", "items": [{"type": "integer"}], "title": "exclude_user_ids", "type": "array", "_name_": "exclude_user_ids", "_required_": false}], "returns": [{"description": "Returns `true` if any of the groups contain password REDACTED, "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "group.query": {"description": "Query groups with `query-filters` and `query-options`.", "cli_description": "Query groups with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": false}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "sudo_commands": {"description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": false}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": false}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": false}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "users": {"description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": false}}, "title": "GroupQueryResultItem", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": false}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "sudo_commands": {"description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": false}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": false}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": false}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "users": {"description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": false}}, "title": "GroupQueryResultItem", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "group.update": {"description": "Update attributes of an existing group.", "cli_description": "Update attributes of an existing group", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"description": "The API identifier of the group to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "A string used to identify a group.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "sudo_commands": {"description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "users": {"description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}}, "title": "group_update", "type": "object", "description": "Updated group configuration data.", "_name_": "group_update", "_required_": true, "_attrs_order_": ["name", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "users"]}], "returns": [{"description": "The API identifier of the updated group.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "hardware.virtualization.variant": {"description": "Report the virtualization variation of TrueNAS system", "cli_description": "Report the virtualization variation of TrueNAS system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"description": "The hardware virtualization variant available on this system.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "idmap.clear_idmap_cache": {"description": "Stop samba, remove the winbindd_cache.tdb file, start samba, flush samba's cache.\nThis should be performed after finalizing idmap changes.", "cli_description": "Stop samba, remove the winbindd_cache", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "initshutdownscript.create": {"description": "Create an initshutdown script task.\n\n`type` indicates if a command or script should be executed at `when`.\n\nThere are three choices for `when`:\n\n1) PREINIT - This is early in the boot process before all the services have started\n2) POSTINIT - This is late in the boot process when most of the services have started\n3) SHUTDOWN - This is on shutdown\n\n`timeout` is an integer value which indicates time in seconds which the system should wait for the execution\nof script/command. It should be noted that a hard limit for a timeout is configured by the base OS, so when\na script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding\nthe timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted\nby the base OS's limit.", "cli_description": "Create an initshutdown script task", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": true}, "enabled": {"default": true, "description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"default": 10, "description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["type", "when"], "title": "data", "type": "object", "description": "Init/shutdown script configuration data for creation.", "_name_": "data", "_required_": true, "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": true}, "enabled": {"default": true, "description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"default": 10, "description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "id": {"description": "Unique identifier for the init/shutdown script.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["type", "when", "id"], "title": "result", "type": "object", "description": "The created init/shutdown script configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment", "id"]}]}, "initshutdownscript.delete": {"description": "Delete init/shutdown task of `id`.", "cli_description": "Delete init/shutdown task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"description": "ID of the init/shutdown script to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Always return `True`.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "initshutdownscript.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_CRON_READ", "SYSTEM_CRON_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": true}, "enabled": {"default": true, "description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"default": 10, "description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "id": {"description": "Unique identifier for the init/shutdown script.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["type", "when", "id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment", "id"]}]}, "initshutdownscript.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_CRON_READ", "SYSTEM_CRON_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": false}, "enabled": {"description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "id": {"description": "Unique identifier for the init/shutdown script.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}}, "title": "InitShutdownScriptQueryResultItem", "type": "object", "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment", "id"]}], "type": "array"}, {"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": false}, "enabled": {"description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "id": {"description": "Unique identifier for the init/shutdown script.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}}, "title": "InitShutdownScriptQueryResultItem", "type": "object", "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment", "id"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "initshutdownscript.update": {"description": "Update initshutdown script task of `id`.", "cli_description": "Update initshutdown script task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_CRON_WRITE"], "accepts": [{"description": "ID of the init/shutdown script to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": false}, "enabled": {"description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "data", "type": "object", "description": "Updated init/shutdown script configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"type": {"description": "Type of init/shutdown script to execute.\n\n* `COMMAND`: Execute a single command\n* `SCRIPT`: Execute a script file", "enum": ["COMMAND", "SCRIPT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "command": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"COMMAND\"`.", "title": "command", "_name_": "command", "_required_": false}, "script": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": "", "description": "Must be given if `type=\"SCRIPT\"`.", "title": "script", "_name_": "script", "_required_": false}, "when": {"description": "* \"PREINIT\": Early in the boot process before all services have started.\n* \"POSTINIT\": Late in the boot process when most services have started.\n* \"SHUTDOWN\": On shutdown.", "enum": ["PREINIT", "POSTINIT", "SHUTDOWN"], "title": "when", "type": "string", "_name_": "when", "_required_": true}, "enabled": {"default": true, "description": "Whether the init/shutdown script is enabled to execute.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "timeout": {"default": 10, "description": "An integer time in seconds that the system should wait for the execution of the script/command.\n\nA hard limit for a timeout is configured by the base OS, so when a script/command is set to execute on SHUTDOWN, the hard limit configured by the base OS is changed adding the timeout specified by script/command so it can be ensured that it executes as desired and is not interrupted by the base OS's limit.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the purpose of this script.", "maxLength": 255, "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "id": {"description": "Unique identifier for the init/shutdown script.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["type", "when", "id"], "title": "result", "type": "object", "description": "The updated init/shutdown script configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "command", "script", "when", "enabled", "timeout", "comment", "id"]}]}, "interface.bridge_members_choices": {"description": "Return available interface choices that can be added to a `br` (bridge) interface.", "cli_description": "Return available interface choices that can be added to a `br` (bridge) interface", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of existing bridge interface whose member interfaces should be included in the result.", "title": "id", "_name_": "id", "_required_": false}], "returns": [{"additionalProperties": {"type": "string"}, "description": "IDs of available interfaces that can be added to a bridge interface.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "interface.cancel_rollback": {"description": "If this method is called after interface changes have been committed and within the checkin timeout,\nthen the task that automatically rolls back any interface changes is cancelled and the in-memory snapshot\nof database tables for the various interface tables will NOT be cleared.", "cli_description": "If this method is called after interface changes have been committed and within the checkin timeout, then the task that automatically rolls back any interface changes is cancelled and the in-memory snapshot of database tables for the various interface tables will NOT be cleared", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [], "returns": [{"description": "No return value for successful cancel rollback operation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "interface.checkin": {"description": "If this method is called after interface changes have been committed and within the checkin timeout,\nthen the task that automatically rolls back any interface changes is cancelled and the in-memory snapshot\nof database tables for the various interface tables will be cleared. The idea is that the end-user has\nverified the changes work as intended and need to be committed permanently.", "cli_description": "If this method is called after interface changes have been committed and within the checkin timeout, then the task that automatically rolls back any interface changes is cancelled and the in-memory snapshot of database tables for the various interface tables will be cleared", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [], "returns": [{"description": "No return value for successful checkin operation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "interface.checkin_waiting": {"description": "Returns whether we are waiting for the user to check in the applied network changes\nbefore they are rolled back.", "cli_description": "Returns whether we are waiting for the user to check in the applied network changes before they are rolled back", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [], "returns": [{"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of seconds left to wait or `null` if not waiting.", "title": "result", "_name_": "result", "_required_": true}]}, "interface.choices": {"description": "Choices of available network interfaces.", "cli_description": "Choices of available network interfaces", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"bridge_members": {"default": false, "description": "Include BRIDGE members.", "title": "bridge_members", "type": "boolean", "_name_": "bridge_members", "_required_": false}, "lag_ports": {"default": false, "description": "Include LINK_AGGREGATION ports.", "title": "lag_ports", "type": "boolean", "_name_": "lag_ports", "_required_": false}, "vlan_parent": {"default": true, "description": "Include VLAN parent interface.", "title": "vlan_parent", "type": "boolean", "_name_": "vlan_parent", "_required_": false}, "exclude": {"default": ["epair", "tap", "vnet"], "description": "Prefixes of interfaces to exclude from the result.", "items": [{}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "exclude_types": {"default": [], "description": "Types of interfaces to exclude from the result.", "items": [{"enum": ["BRIDGE", "LINK_AGGREGATION", "PHYSICAL", "UNKNOWN", "VLAN"], "type": "string"}], "title": "exclude_types", "type": "array", "_name_": "exclude_types", "_required_": false}, "include": {"default": [], "description": "Specific interfaces to include even if they would normally be excluded.", "items": [{"type": "string"}], "title": "include", "type": "array", "_name_": "include", "_required_": false}}, "title": "options", "type": "object", "description": "Options for filtering interface choices.", "_name_": "options", "_required_": false, "_attrs_order_": ["bridge_members", "lag_ports", "vlan_parent", "exclude", "exclude_types", "include"]}], "returns": [{"additionalProperties": {"type": "string"}, "description": "Names and descriptions of available network interfaces.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "interface.commit": {"description": "Commit/apply pending interfaces changes.", "cli_description": "Commit/apply pending interfaces changes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"rollback": {"default": true, "description": "Roll back changes in case they fail to apply.", "title": "rollback", "type": "boolean", "_name_": "rollback", "_required_": false}, "checkin_timeout": {"default": 60, "description": "Number of seconds to wait for the checkin call to acknowledge the interface changes happened as planned from the user. If checkin does not happen within this period of time, the changes will get reverted.", "title": "checkin_timeout", "type": "integer", "_name_": "checkin_timeout", "_required_": false}}, "title": "options", "type": "object", "description": "Options for committing interface changes.", "_name_": "options", "_required_": false, "_attrs_order_": ["rollback", "checkin_timeout"]}], "returns": [{"description": "No return value for successful commit operation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "interface.create": {"description": "Create virtual interfaces (Link Aggregation, VLAN)\n\n", "cli_description": "Create virtual interfaces (Link Aggregation, VLAN)", "examples": {"cli": ["\n\nCreate a bridge interface:\n\n> network interface create name=br0 type=BRIDGE bridge_members=enp0s3,enp0s4\n aliases=\"192.168.0.10\"\n\nCreate a link aggregation interface that has multiple IP addresses in multiple subnets:\n\n> network interface create name=bond0 type=LINK_AGGREGATION lag_protocol=LACP\n lag_ports=enp0s8,enp0s9 aliases=\"192.168.0.20/30\",\"192.168.1.20/30\"\n\nCreate a DHCP-enabled VLAN interface\n\n> network interface create name=vlan0 type=VLAN vlan_parent_interface=enp0s10\n vlan_tag=10 vlan_pcp=4 ipv4_dhcp=true ipv6_auto=true"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Generate a name if not provided based on `type`, e.g. \"br0\", \"bond1\", \"vlan0\".", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"default": "", "description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "type": {"description": "Type of interface to create.", "enum": ["BRIDGE", "LINK_AGGREGATION", "VLAN"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "ipv4_dhcp": {"default": false, "description": "Enable IPv4 DHCP for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": false}, "ipv6_auto": {"default": false, "description": "Enable IPv6 autoconfiguration.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": false}, "aliases": {"default": [], "description": "List of IP address aliases to configure on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"default": "INET", "description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address for the failover alias.", "title": "address", "_name_": "address", "_required_": true}, "netmask": {"description": "The network mask in CIDR notation.", "title": "netmask", "type": "integer", "_name_": "netmask", "_required_": true}}, "required": ["address", "netmask"], "title": "InterfaceCreateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "uniqueItems": true, "_name_": "aliases", "_required_": false}, "failover_critical": {"default": false, "description": "Whether this interface is critical for failover functionality. Critical interfaces are monitored for failover events and can trigger failover when they fail.", "title": "failover_critical", "type": "boolean", "_name_": "failover_critical", "_required_": false}, "failover_group": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Failover group identifier for clustering. Interfaces in the same group fail over together during failover events.", "title": "failover_group", "_name_": "failover_group", "_required_": false}, "failover_vhid": {"anyOf": [{"maximum": 255, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Virtual Host ID for VRRP failover configuration. Must be unique within the VRRP group and match between failover nodes.", "title": "failover_vhid", "_name_": "failover_vhid", "_required_": false}, "failover_aliases": {"default": [], "description": "List of IP aliases for failover configuration. These IPs are assigned to the interface during normal operation and migrate during failover.", "items": [{"additionalProperties": false, "properties": {"type": {"default": "INET", "description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address for the failover alias.", "title": "address", "_name_": "address", "_required_": true}}, "required": ["address"], "title": "InterfaceCreateFailoverAlias", "type": "object", "_attrs_order_": ["type", "address"]}], "title": "failover_aliases", "type": "array", "_name_": "failover_aliases", "_required_": false}, "failover_virtual_aliases": {"default": [], "description": "List of virtual IP aliases for failover configuration. These are shared IPs that float between nodes during failover events.", "items": [{"additionalProperties": false, "properties": {"type": {"default": "INET", "description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address for the failover alias.", "title": "address", "_name_": "address", "_required_": true}}, "required": ["address"], "title": "InterfaceCreateFailoverAlias", "type": "object", "_attrs_order_": ["type", "address"]}], "title": "failover_virtual_aliases", "type": "array", "_name_": "failover_virtual_aliases", "_required_": false}, "bridge_members": {"default": [], "description": "List of interfaces to add as members of this bridge.", "items": [{}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"default": true, "description": "Enable MAC address learning for bridge interfaces. When enabled, the bridge learns MAC addresses from incoming frames and builds a forwarding table to optimize traffic flow.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}, "stp": {"default": true, "description": "Enable Spanning Tree Protocol for bridge interfaces. STP prevents network loops by blocking redundant paths and enables automatic failover when the primary path fails.", "title": "stp", "type": "boolean", "_name_": "stp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol to use for bonding interfaces. LACP uses 802.3ad dynamic negotiation, FAILOVER provides active-backup, LOADBALANCE and ROUNDROBIN distribute traffic across links.", "enum": ["LACP", "FAILOVER", "LOADBALANCE", "ROUNDROBIN", "NONE"], "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "xmit_hash_policy": {"default": null, "description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "enum": ["LAYER2", "LAYER2+3", "LAYER3+4", null], "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"default": null, "description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "enum": ["SLOW", "FAST", null], "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "lag_ports": {"default": [], "description": "List of interface names to include in the link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "vlan_parent_interface": {"description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "type": "string", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"description": "VLAN tag number (1-4094).", "ge": 1, "le": 4094, "title": "vlan_tag", "type": "integer", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"maximum": 7, "minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization (0-7). Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "mtu": {"anyOf": [{"maximum": 9216, "minimum": 68, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum transmission unit size for the interface (68-9216 bytes).", "title": "mtu", "_name_": "mtu", "_required_": false}}, "required": ["type"], "title": "data", "type": "object", "description": "Configuration data for the new interface.", "_name_": "data", "_required_": true, "_attrs_order_": ["name", "description", "type", "ipv4_dhcp", "ipv6_auto", "aliases", "failover_critical", "failover_group", "failover_vhid", "failover_aliases", "failover_virtual_aliases", "bridge_members", "enable_learning", "stp", "lag_protocol", "xmit_hash_policy", "lacpdu_rate", "lag_ports", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "mtu"]}], "returns": [{"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for the network interface.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "fake": {"description": "Whether this is a fake/simulated interface for testing purposes.", "title": "fake", "type": "boolean", "_name_": "fake", "_required_": true}, "type": {"description": "Type of interface (PHYSICAL, BRIDGE, LINK_AGGREGATION, VLAN, etc.).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "state": {"additionalProperties": false, "properties": {"name": {"description": "Current name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "orig_name": {"description": "Original name of the network interface before any renaming.", "title": "orig_name", "type": "string", "_name_": "orig_name", "_required_": true}, "description": {"description": "Human-readable description of the network interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"description": "Maximum transmission unit size for the interface.", "title": "mtu", "type": "integer", "_name_": "mtu", "_required_": true}, "cloned": {"description": "Whether the interface is a cloned/virtual interface.", "title": "cloned", "type": "boolean", "_name_": "cloned", "_required_": true}, "flags": {"description": "List of interface flags indicating various states and capabilities. Common flags include UP, DOWN, RUNNING, MULTICAST, BROADCAST, LOOPBACK, and POINTOPOINT.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}, "nd6_flags": {"description": "IPv6 neighbor discovery flags. These control IPv6 autoconfiguration behavior and include flags like AUTO_LINKLOCAL, ACCEPT_RTADV, and PERFORMNUD.", "items": [{}], "title": "nd6_flags", "type": "array", "_name_": "nd6_flags", "_required_": true}, "capabilities": {"description": "List of hardware capabilities supported by the interface. Common capabilities include VLAN_MTU, JUMBO_MTU, VLAN_HWTAGGING, VLAN_HWCSUM, and TSO4.", "items": [{}], "title": "capabilities", "type": "array", "_name_": "capabilities", "_required_": true}, "link_state": {"description": "Current link state of the interface (up, down, etc.).", "title": "link_state", "type": "string", "_name_": "link_state", "_required_": true}, "media_type": {"description": "Type of media/connection for the interface. Examples include Ethernet, 802.11, or loopback.", "title": "media_type", "type": "string", "_name_": "media_type", "_required_": true}, "media_subtype": {"description": "Subtype of media/connection for the interface. Examples include 1000baseT, 100baseTX, or autoselect.", "title": "media_subtype", "type": "string", "_name_": "media_subtype", "_required_": true}, "active_media_type": {"description": "Currently active media type. This may differ from configured media_type during autonegotiation.", "title": "active_media_type", "type": "string", "_name_": "active_media_type", "_required_": true}, "active_media_subtype": {"description": "Currently active media subtype. This reflects the actual negotiated connection speed and type.", "title": "active_media_subtype", "type": "string", "_name_": "active_media_subtype", "_required_": true}, "supported_media": {"description": "List of supported media types for the interface. Contains media descriptors like '1000baseT ' or 'autoselect'.", "items": [{}], "title": "supported_media", "type": "array", "_name_": "supported_media", "_required_": true}, "media_options": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "Available media options for the interface. Options may include 'full-duplex', 'half-duplex', 'flowcontrol', or 'rxpause'.", "title": "media_options", "_name_": "media_options", "_required_": true}, "link_address": {"description": "MAC address of the interface.", "title": "link_address", "type": "string", "_name_": "link_address", "_required_": true}, "permanent_link_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Permanent MAC address of the interface if different from current.", "title": "permanent_link_address", "_name_": "permanent_link_address", "_required_": true}, "hardware_link_address": {"description": "Hardware MAC address of the interface.", "title": "hardware_link_address", "type": "string", "_name_": "hardware_link_address", "_required_": true}, "rx_queues": {"description": "Number of receive queues configured for the interface.", "title": "rx_queues", "type": "integer", "_name_": "rx_queues", "_required_": false}, "tx_queues": {"description": "Number of transmit queues configured for the interface.", "title": "tx_queues", "type": "integer", "_name_": "tx_queues", "_required_": false}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": false}, "broadcast": {"description": "Broadcast address for the network interface.", "title": "broadcast", "type": "string", "_name_": "broadcast", "_required_": false}}, "required": ["type", "address"], "title": "InterfaceEntryStateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask", "broadcast"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "vrrp_config": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "default": [], "description": "VRRP (Virtual Router Redundancy Protocol) configuration for the interface.", "title": "vrrp_config", "_name_": "vrrp_config", "_required_": false}, "protocol": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Link aggregation protocol used (LACP, FAILOVER, etc.).", "title": "protocol", "_name_": "protocol", "_required_": false}, "ports": {"default": [], "description": "List of ports that are members of this link aggregation group.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "The name of the port interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "flags": {"description": "List of flags associated with the port.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}}, "required": ["name", "flags"], "title": "InterfaceEntryStatePort", "type": "object", "_attrs_order_": ["name", "flags"]}], "title": "ports", "type": "array", "_name_": "ports", "_required_": false}, "xmit_hash_policy": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "parent": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "parent", "_name_": "parent", "_required_": false}, "tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number.", "title": "tag", "_name_": "tag", "_required_": false}, "pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization. Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "pcp", "_name_": "pcp", "_required_": false}}, "required": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "aliases"], "title": "state", "type": "object", "description": "Current runtime state information for the interface.", "_name_": "state", "_required_": true, "_attrs_order_": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "rx_queues", "tx_queues", "aliases", "vrrp_config", "protocol", "ports", "xmit_hash_policy", "lacpdu_rate", "parent", "tag", "pcp"]}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "InterfaceEntryAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "ipv4_dhcp": {"description": "Whether IPv4 DHCP is enabled for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": true}, "ipv6_auto": {"description": "Whether IPv6 autoconfiguration is enabled.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": true}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface.", "title": "mtu", "_name_": "mtu", "_required_": true}, "vlan_parent_interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number for VLAN interfaces.", "title": "vlan_tag", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol (LACP, FAILOVER, LOADBALANCE, etc.).", "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "lag_ports": {"default": [], "description": "List of interface names that are members of this link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "bridge_members": {"default": [], "description": "List of interface names that are members of this bridge.", "items": [{"type": "string"}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Whether MAC address learning is enabled for bridge interfaces.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}}, "required": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu"], "title": "result", "type": "object", "description": "The created interface configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "lag_protocol", "lag_ports", "bridge_members", "enable_learning"]}]}, "interface.delete": {"description": "Delete Interface of `id`.", "cli_description": "Delete Interface of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"description": "ID of the interface to delete.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "ID of the interface that was deleted.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "interface.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for the network interface.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "fake": {"description": "Whether this is a fake/simulated interface for testing purposes.", "title": "fake", "type": "boolean", "_name_": "fake", "_required_": true}, "type": {"description": "Type of interface (PHYSICAL, BRIDGE, LINK_AGGREGATION, VLAN, etc.).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "state": {"additionalProperties": false, "properties": {"name": {"description": "Current name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "orig_name": {"description": "Original name of the network interface before any renaming.", "title": "orig_name", "type": "string", "_name_": "orig_name", "_required_": true}, "description": {"description": "Human-readable description of the network interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"description": "Maximum transmission unit size for the interface.", "title": "mtu", "type": "integer", "_name_": "mtu", "_required_": true}, "cloned": {"description": "Whether the interface is a cloned/virtual interface.", "title": "cloned", "type": "boolean", "_name_": "cloned", "_required_": true}, "flags": {"description": "List of interface flags indicating various states and capabilities. Common flags include UP, DOWN, RUNNING, MULTICAST, BROADCAST, LOOPBACK, and POINTOPOINT.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}, "nd6_flags": {"description": "IPv6 neighbor discovery flags. These control IPv6 autoconfiguration behavior and include flags like AUTO_LINKLOCAL, ACCEPT_RTADV, and PERFORMNUD.", "items": [{}], "title": "nd6_flags", "type": "array", "_name_": "nd6_flags", "_required_": true}, "capabilities": {"description": "List of hardware capabilities supported by the interface. Common capabilities include VLAN_MTU, JUMBO_MTU, VLAN_HWTAGGING, VLAN_HWCSUM, and TSO4.", "items": [{}], "title": "capabilities", "type": "array", "_name_": "capabilities", "_required_": true}, "link_state": {"description": "Current link state of the interface (up, down, etc.).", "title": "link_state", "type": "string", "_name_": "link_state", "_required_": true}, "media_type": {"description": "Type of media/connection for the interface. Examples include Ethernet, 802.11, or loopback.", "title": "media_type", "type": "string", "_name_": "media_type", "_required_": true}, "media_subtype": {"description": "Subtype of media/connection for the interface. Examples include 1000baseT, 100baseTX, or autoselect.", "title": "media_subtype", "type": "string", "_name_": "media_subtype", "_required_": true}, "active_media_type": {"description": "Currently active media type. This may differ from configured media_type during autonegotiation.", "title": "active_media_type", "type": "string", "_name_": "active_media_type", "_required_": true}, "active_media_subtype": {"description": "Currently active media subtype. This reflects the actual negotiated connection speed and type.", "title": "active_media_subtype", "type": "string", "_name_": "active_media_subtype", "_required_": true}, "supported_media": {"description": "List of supported media types for the interface. Contains media descriptors like '1000baseT ' or 'autoselect'.", "items": [{}], "title": "supported_media", "type": "array", "_name_": "supported_media", "_required_": true}, "media_options": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "Available media options for the interface. Options may include 'full-duplex', 'half-duplex', 'flowcontrol', or 'rxpause'.", "title": "media_options", "_name_": "media_options", "_required_": true}, "link_address": {"description": "MAC address of the interface.", "title": "link_address", "type": "string", "_name_": "link_address", "_required_": true}, "permanent_link_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Permanent MAC address of the interface if different from current.", "title": "permanent_link_address", "_name_": "permanent_link_address", "_required_": true}, "hardware_link_address": {"description": "Hardware MAC address of the interface.", "title": "hardware_link_address", "type": "string", "_name_": "hardware_link_address", "_required_": true}, "rx_queues": {"description": "Number of receive queues configured for the interface.", "title": "rx_queues", "type": "integer", "_name_": "rx_queues", "_required_": false}, "tx_queues": {"description": "Number of transmit queues configured for the interface.", "title": "tx_queues", "type": "integer", "_name_": "tx_queues", "_required_": false}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": false}, "broadcast": {"description": "Broadcast address for the network interface.", "title": "broadcast", "type": "string", "_name_": "broadcast", "_required_": false}}, "required": ["type", "address"], "title": "InterfaceEntryStateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask", "broadcast"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "vrrp_config": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "default": [], "description": "VRRP (Virtual Router Redundancy Protocol) configuration for the interface.", "title": "vrrp_config", "_name_": "vrrp_config", "_required_": false}, "protocol": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Link aggregation protocol used (LACP, FAILOVER, etc.).", "title": "protocol", "_name_": "protocol", "_required_": false}, "ports": {"default": [], "description": "List of ports that are members of this link aggregation group.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "The name of the port interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "flags": {"description": "List of flags associated with the port.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}}, "required": ["name", "flags"], "title": "InterfaceEntryStatePort", "type": "object", "_attrs_order_": ["name", "flags"]}], "title": "ports", "type": "array", "_name_": "ports", "_required_": false}, "xmit_hash_policy": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "parent": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "parent", "_name_": "parent", "_required_": false}, "tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number.", "title": "tag", "_name_": "tag", "_required_": false}, "pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization. Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "pcp", "_name_": "pcp", "_required_": false}}, "required": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "aliases"], "title": "state", "type": "object", "description": "Current runtime state information for the interface.", "_name_": "state", "_required_": true, "_attrs_order_": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "rx_queues", "tx_queues", "aliases", "vrrp_config", "protocol", "ports", "xmit_hash_policy", "lacpdu_rate", "parent", "tag", "pcp"]}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "InterfaceEntryAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "ipv4_dhcp": {"description": "Whether IPv4 DHCP is enabled for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": true}, "ipv6_auto": {"description": "Whether IPv6 autoconfiguration is enabled.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": true}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface.", "title": "mtu", "_name_": "mtu", "_required_": true}, "vlan_parent_interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number for VLAN interfaces.", "title": "vlan_tag", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol (LACP, FAILOVER, LOADBALANCE, etc.).", "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "lag_ports": {"default": [], "description": "List of interface names that are members of this link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "bridge_members": {"default": [], "description": "List of interface names that are members of this bridge.", "items": [{"type": "string"}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Whether MAC address learning is enabled for bridge interfaces.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}}, "required": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "lag_protocol", "lag_ports", "bridge_members", "enable_learning"]}]}, "interface.has_pending_changes": {"description": "Return whether there are pending interfaces changes to be applied or not.", "cli_description": "Return whether there are pending interfaces changes to be applied or not", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [], "returns": [{"description": "Whether there are pending interface changes that need to be committed.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "interface.ip_in_use": {"description": "Get all IPv4 / IPv6 from all valid interfaces", "cli_description": "Get all IPv4 / IPv6 from all valid interfaces", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"ipv4": {"default": true, "description": "Include IPv4 addresses in the results.", "title": "ipv4", "type": "boolean", "_name_": "ipv4", "_required_": false}, "ipv6": {"default": true, "description": "Include IPv6 addresses in the results.", "title": "ipv6", "type": "boolean", "_name_": "ipv6", "_required_": false}, "ipv6_link_local": {"default": false, "description": "Include IPv6 link-local addresses in the results.", "title": "ipv6_link_local", "type": "boolean", "_name_": "ipv6_link_local", "_required_": false}, "loopback": {"default": false, "description": "Return loopback interface addresses.", "title": "loopback", "type": "boolean", "_name_": "loopback", "_required_": false}, "any": {"default": false, "description": "Return wildcard addresses (0.0.0.0 and ::).", "title": "any", "type": "boolean", "_name_": "any", "_required_": false}, "static": {"default": false, "description": "Only return configured static IPs.", "title": "static", "type": "boolean", "_name_": "static", "_required_": false}, "interfaces": {"description": "Only return IPs from specified interfaces. If empty, returns IPs from all interfaces.", "items": [{"minLength": 1, "type": "string"}], "title": "interfaces", "type": "array", "_name_": "interfaces", "_required_": false}}, "title": "options", "type": "object", "description": "Options for filtering IP addresses in use.", "_name_": "options", "_required_": false, "_attrs_order_": ["ipv4", "ipv6", "ipv6_link_local", "loopback", "any", "static", "interfaces"]}], "returns": [{"examples": [[{"address": "fe80::5054:ff:fe16:4aac", "netmask": 64, "type": "INET6"}, {"address": "192.168.122.148", "broadcast": "192.168.122.255", "netmask": 24, "type": "INET"}]], "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address that is in use.", "title": "address", "_name_": "address", "_required_": true}, "netmask": {"description": "The network mask in CIDR notation.", "title": "netmask", "type": "integer", "_name_": "netmask", "_required_": true}, "broadcast": {"description": "The broadcast address for IPv4 networks.", "title": "broadcast", "type": "string", "_name_": "broadcast", "_required_": false}}, "required": ["type", "address", "netmask"], "title": "InterfaceIPInUseItem", "type": "object", "_attrs_order_": ["type", "address", "netmask", "broadcast"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "interface.lacpdu_rate_choices": {"description": "Available lacpdu rate policies for the LACP lagg type interfaces.", "cli_description": "Available lacpdu rate policies for the LACP lagg type interfaces", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"SLOW": {"const": "SLOW", "description": "Send LACPDUs every 30 seconds for standard link monitoring.", "enum": ["SLOW"], "title": "SLOW", "type": "string", "_name_": "SLOW", "_required_": true}, "FAST": {"const": "FAST", "description": "Send LACPDUs every 1 second for rapid link failure detection.", "enum": ["FAST"], "title": "FAST", "type": "string", "_name_": "FAST", "_required_": true}}, "required": ["SLOW", "FAST"], "title": "result", "type": "object", "description": "InterfaceLacpduRateChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["SLOW", "FAST"]}]}, "interface.lag_ports_choices": {"description": "Return available interface choices that can be added to a `bond` (lag) interface.", "cli_description": "Return available interface choices that can be added to a `bond` (lag) interface", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of existing bond interface whose member interfaces should be included in the result.", "title": "id", "_name_": "id", "_required_": false}], "returns": [{"additionalProperties": {"type": "string"}, "description": "IDs of available interfaces that can be added to a bond interface.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "interface.network_config_to_be_removed": {"description": "Determines which network configuration items will be removed during interface setup.\n\nOn a fresh install of SCALE, dhclient is started for every interface so IP\naddresses/routes could be installed via that program. However, when the\nend-user goes to configure the first interface we tear down all other interfaces\nconfigs AND delete the default route. We also remove the default route if the\nconfigured gateway doesn't match the one currently installed in kernel.\n\nAdditionally, this checks for nameserver configurations that exist in the current\nnetwork state but are not configured in the database, indicating they will be\nremoved during reconfiguration.", "cli_description": "Determines which network configuration items will be removed during interface setup", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "The network configuration fields that will be wiped on the next `interface.checkin` call. The current values of these fields can be retrieved by calling `network.configuration.config`.", "items": [{"enum": ["ipv4gateway", "nameserver1", "nameserver2", "nameserver3"], "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "interface.query": {"description": "Query Interfaces with `query-filters` and `query-options`\n\n`options.extra.retrieve_names_only` (bool): Only return interface names.", "cli_description": "Query Interfaces with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for the network interface.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "fake": {"description": "Whether this is a fake/simulated interface for testing purposes.", "title": "fake", "type": "boolean", "_name_": "fake", "_required_": false}, "type": {"description": "Type of interface (PHYSICAL, BRIDGE, LINK_AGGREGATION, VLAN, etc.).", "title": "type", "type": "string", "_name_": "type", "_required_": false}, "state": {"additionalProperties": false, "properties": {"name": {"description": "Current name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "orig_name": {"description": "Original name of the network interface before any renaming.", "title": "orig_name", "type": "string", "_name_": "orig_name", "_required_": true}, "description": {"description": "Human-readable description of the network interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"description": "Maximum transmission unit size for the interface.", "title": "mtu", "type": "integer", "_name_": "mtu", "_required_": true}, "cloned": {"description": "Whether the interface is a cloned/virtual interface.", "title": "cloned", "type": "boolean", "_name_": "cloned", "_required_": true}, "flags": {"description": "List of interface flags indicating various states and capabilities. Common flags include UP, DOWN, RUNNING, MULTICAST, BROADCAST, LOOPBACK, and POINTOPOINT.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}, "nd6_flags": {"description": "IPv6 neighbor discovery flags. These control IPv6 autoconfiguration behavior and include flags like AUTO_LINKLOCAL, ACCEPT_RTADV, and PERFORMNUD.", "items": [{}], "title": "nd6_flags", "type": "array", "_name_": "nd6_flags", "_required_": true}, "capabilities": {"description": "List of hardware capabilities supported by the interface. Common capabilities include VLAN_MTU, JUMBO_MTU, VLAN_HWTAGGING, VLAN_HWCSUM, and TSO4.", "items": [{}], "title": "capabilities", "type": "array", "_name_": "capabilities", "_required_": true}, "link_state": {"description": "Current link state of the interface (up, down, etc.).", "title": "link_state", "type": "string", "_name_": "link_state", "_required_": true}, "media_type": {"description": "Type of media/connection for the interface. Examples include Ethernet, 802.11, or loopback.", "title": "media_type", "type": "string", "_name_": "media_type", "_required_": true}, "media_subtype": {"description": "Subtype of media/connection for the interface. Examples include 1000baseT, 100baseTX, or autoselect.", "title": "media_subtype", "type": "string", "_name_": "media_subtype", "_required_": true}, "active_media_type": {"description": "Currently active media type. This may differ from configured media_type during autonegotiation.", "title": "active_media_type", "type": "string", "_name_": "active_media_type", "_required_": true}, "active_media_subtype": {"description": "Currently active media subtype. This reflects the actual negotiated connection speed and type.", "title": "active_media_subtype", "type": "string", "_name_": "active_media_subtype", "_required_": true}, "supported_media": {"description": "List of supported media types for the interface. Contains media descriptors like '1000baseT ' or 'autoselect'.", "items": [{}], "title": "supported_media", "type": "array", "_name_": "supported_media", "_required_": true}, "media_options": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "Available media options for the interface. Options may include 'full-duplex', 'half-duplex', 'flowcontrol', or 'rxpause'.", "title": "media_options", "_name_": "media_options", "_required_": true}, "link_address": {"description": "MAC address of the interface.", "title": "link_address", "type": "string", "_name_": "link_address", "_required_": true}, "permanent_link_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Permanent MAC address of the interface if different from current.", "title": "permanent_link_address", "_name_": "permanent_link_address", "_required_": true}, "hardware_link_address": {"description": "Hardware MAC address of the interface.", "title": "hardware_link_address", "type": "string", "_name_": "hardware_link_address", "_required_": true}, "rx_queues": {"description": "Number of receive queues configured for the interface.", "title": "rx_queues", "type": "integer", "_name_": "rx_queues", "_required_": false}, "tx_queues": {"description": "Number of transmit queues configured for the interface.", "title": "tx_queues", "type": "integer", "_name_": "tx_queues", "_required_": false}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": false}, "broadcast": {"description": "Broadcast address for the network interface.", "title": "broadcast", "type": "string", "_name_": "broadcast", "_required_": false}}, "required": ["type", "address"], "title": "InterfaceEntryStateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask", "broadcast"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "vrrp_config": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "default": [], "description": "VRRP (Virtual Router Redundancy Protocol) configuration for the interface.", "title": "vrrp_config", "_name_": "vrrp_config", "_required_": false}, "protocol": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Link aggregation protocol used (LACP, FAILOVER, etc.).", "title": "protocol", "_name_": "protocol", "_required_": false}, "ports": {"default": [], "description": "List of ports that are members of this link aggregation group.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "The name of the port interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "flags": {"description": "List of flags associated with the port.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}}, "required": ["name", "flags"], "title": "InterfaceEntryStatePort", "type": "object", "_attrs_order_": ["name", "flags"]}], "title": "ports", "type": "array", "_name_": "ports", "_required_": false}, "xmit_hash_policy": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "parent": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "parent", "_name_": "parent", "_required_": false}, "tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number.", "title": "tag", "_name_": "tag", "_required_": false}, "pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization. Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "pcp", "_name_": "pcp", "_required_": false}}, "required": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "aliases"], "title": "state", "type": "object", "description": "Current runtime state information for the interface.", "_name_": "state", "_required_": false, "_attrs_order_": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "rx_queues", "tx_queues", "aliases", "vrrp_config", "protocol", "ports", "xmit_hash_policy", "lacpdu_rate", "parent", "tag", "pcp"]}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "InterfaceEntryAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "ipv4_dhcp": {"description": "Whether IPv4 DHCP is enabled for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": false}, "ipv6_auto": {"description": "Whether IPv6 autoconfiguration is enabled.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": false}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mtu": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface.", "title": "mtu", "_name_": "mtu", "_required_": false}, "vlan_parent_interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number for VLAN interfaces.", "title": "vlan_tag", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol (LACP, FAILOVER, LOADBALANCE, etc.).", "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "lag_ports": {"description": "List of interface names that are members of this link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "bridge_members": {"description": "List of interface names that are members of this bridge.", "items": [{"type": "string"}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Whether MAC address learning is enabled for bridge interfaces.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}}, "title": "InterfaceQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "lag_protocol", "lag_ports", "bridge_members", "enable_learning"]}], "type": "array"}, {"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for the network interface.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "fake": {"description": "Whether this is a fake/simulated interface for testing purposes.", "title": "fake", "type": "boolean", "_name_": "fake", "_required_": false}, "type": {"description": "Type of interface (PHYSICAL, BRIDGE, LINK_AGGREGATION, VLAN, etc.).", "title": "type", "type": "string", "_name_": "type", "_required_": false}, "state": {"description": "Current runtime state information for the interface.", "title": "state", "_name_": "state", "_required_": false}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "ipv4_dhcp": {"description": "Whether IPv4 DHCP is enabled for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": false}, "ipv6_auto": {"description": "Whether IPv6 autoconfiguration is enabled.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": false}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mtu": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface.", "title": "mtu", "_name_": "mtu", "_required_": false}, "vlan_parent_interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number for VLAN interfaces.", "title": "vlan_tag", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol (LACP, FAILOVER, LOADBALANCE, etc.).", "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "lag_ports": {"description": "List of interface names that are members of this link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "bridge_members": {"description": "List of interface names that are members of this bridge.", "items": [{"type": "string"}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Whether MAC address learning is enabled for bridge interfaces.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}}, "title": "InterfaceQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "lag_protocol", "lag_ports", "bridge_members", "enable_learning"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "interface.rollback": {"description": "Rollback pending interfaces changes.", "cli_description": "Rollback pending interfaces changes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [], "returns": [{"description": "No return value for successful rollback operation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "interface.save_network_config": {"description": "Saves network configuration settings to prevent network isolation during interface changes.\n\nThis method provides a path for remediation when interface modifications would remove\nnetwork connectivity. It accepts a configuration object containing network settings\nthat will be validated and applied to the global network configuration.\n\nThis makes 2 assumptions:\n1. `interface.create`/`update`/`delete` must have been called before\n calling this method.\n2. This method must be called before `interface.commit` is called.\n\nThis method exists for the predominant scenario for new users:\n1. Fresh install SCALE.\n2. All interfaces start DHCPv4 (v6 is ignored for now).\n3. One of the interfaces receives an IP address.\n4. Along with the IP, the kernel receives a default route\n (by design, of course).\n5. User goes to configure this interface as having a static\n IP address.\n6. As we go through and \"commit\" the changes, we remove the default\n route because it exists in the kernel FIB but doesn't exist\n in the database.\n7. IF the user is connecting via layer3, then they will lose all\n access to the TrueNAS and never be able to finalize the changes\n to the network because we ripped out the default route which\n is how they were communicating to begin with.\n\nIn the above scenario, we're going to try and prevent this by doing\nthe following:\n1. Fresh install SCALE.\n2. All interfaces start DHCPv4.\n3. Default route is received.\n4. User configures an interface.\n5. When user pushes \"Test Changes\" (`interface.commit`), webUI will call\n `interface.network_config_to_be_removed` BEFORE `interface.commit`.\n6. If `interface.network_config_to_be_removed` returns any fields,\n then webUI will open a new modal dialog that gives the end-user\n ample warning describing the situation. Furthermore, the\n modal will allow the user to input a default gateway and nameservers.\n7. If user gives gateway, webUI will call this method providing the info\n and we'll validate accordingly.\n8. OR if user doesn't give gateway, they will need to \"confirm\" this is\n desired.\n9. The network configuration provided (gateway and nameservers) will be stored\n in the same in-memory cache that we use for storing the interface changes\n and will be rolled back accordingly in this plugin just like everything else.\n\nThere are a few other scenarios where this is beneficial, but the one listed above\nis seen most often by end-users/support team.", "cli_description": "Saves network configuration settings to prevent network isolation during interface changes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"ipv4gateway": {"description": "IPv4 address of the default gateway to save.", "title": "ipv4gateway", "type": "string", "_name_": "ipv4gateway", "_required_": true}, "nameserver1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Primary DNS server.", "title": "nameserver1", "_name_": "nameserver1", "_required_": false}, "nameserver2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Secondary DNS server.", "title": "nameserver2", "_name_": "nameserver2", "_required_": false}, "nameserver3": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Tertiary DNS server.", "title": "nameserver3", "_name_": "nameserver3", "_required_": false}}, "required": ["ipv4gateway"], "title": "config", "type": "object", "description": "InterfaceSaveNetworkConfigArgs parameters.", "_name_": "config", "_required_": true, "_attrs_order_": ["ipv4gateway", "nameserver1", "nameserver2", "nameserver3"]}], "returns": [{"description": "No return value for successful save default route operation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "interface.services_restarted_on_sync": {"description": "Returns which services will be set to listen on 0.0.0.0 (and, thus, restarted) on sync.\n\nExample result:\n[\n // Samba service will be set ot listen on 0.0.0.0 and restarted because it was set up to listen on\n // 192.168.0.1 which is being removed.\n {\"type\": \"SYSTEM_SERVICE\", \"service\": \"cifs\", \"ips\": [\"192.168.0.1\"]},\n]", "cli_description": "Returns which services will be set to listen on 0", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "List of services that were restarted during interface synchronization.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of service restart event.", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service": {"description": "The name of the service that was restarted.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, "ips": {"description": "List of IP addresses associated with the service restart.", "items": [{"type": "string"}], "title": "ips", "type": "array", "_name_": "ips", "_required_": true}}, "required": ["type", "service", "ips"], "title": "InterfaceServicesRestartedOnSyncItem", "type": "object", "_attrs_order_": ["type", "service", "ips"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "interface.update": {"description": "Update Interface of `id`.\n\n", "cli_description": "Update Interface of `id`", "examples": {"cli": ["\n\nUpdate network interface static IP:\n\n> network interface update enp0s3 aliases=\"192.168.0.10\""]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"description": "ID of the interface to update.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Generate a name if not provided based on `type`, e.g. \"br0\", \"bond1\", \"vlan0\".", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "ipv4_dhcp": {"description": "Enable IPv4 DHCP for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": false}, "ipv6_auto": {"description": "Enable IPv6 autoconfiguration.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": false}, "aliases": {"description": "List of IP address aliases to configure on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"default": "INET", "description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address for the failover alias.", "title": "address", "_name_": "address", "_required_": true}, "netmask": {"description": "The network mask in CIDR notation.", "title": "netmask", "type": "integer", "_name_": "netmask", "_required_": true}}, "required": ["address", "netmask"], "title": "InterfaceCreateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "uniqueItems": true, "_name_": "aliases", "_required_": false}, "failover_critical": {"description": "Whether this interface is critical for failover functionality. Critical interfaces are monitored for failover events and can trigger failover when they fail.", "title": "failover_critical", "type": "boolean", "_name_": "failover_critical", "_required_": false}, "failover_group": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Failover group identifier for clustering. Interfaces in the same group fail over together during failover events.", "title": "failover_group", "_name_": "failover_group", "_required_": false}, "failover_vhid": {"anyOf": [{"maximum": 255, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Virtual Host ID for VRRP failover configuration. Must be unique within the VRRP group and match between failover nodes.", "title": "failover_vhid", "_name_": "failover_vhid", "_required_": false}, "failover_aliases": {"description": "List of IP aliases for failover configuration. These IPs are assigned to the interface during normal operation and migrate during failover.", "items": [{"additionalProperties": false, "properties": {"type": {"default": "INET", "description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address for the failover alias.", "title": "address", "_name_": "address", "_required_": true}}, "required": ["address"], "title": "InterfaceCreateFailoverAlias", "type": "object", "_attrs_order_": ["type", "address"]}], "title": "failover_aliases", "type": "array", "_name_": "failover_aliases", "_required_": false}, "failover_virtual_aliases": {"description": "List of virtual IP aliases for failover configuration. These are shared IPs that float between nodes during failover events.", "items": [{"additionalProperties": false, "properties": {"type": {"default": "INET", "description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "address": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "The IP address for the failover alias.", "title": "address", "_name_": "address", "_required_": true}}, "required": ["address"], "title": "InterfaceCreateFailoverAlias", "type": "object", "_attrs_order_": ["type", "address"]}], "title": "failover_virtual_aliases", "type": "array", "_name_": "failover_virtual_aliases", "_required_": false}, "bridge_members": {"description": "List of interfaces to add as members of this bridge.", "items": [{}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Enable MAC address learning for bridge interfaces. When enabled, the bridge learns MAC addresses from incoming frames and builds a forwarding table to optimize traffic flow.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}, "stp": {"description": "Enable Spanning Tree Protocol for bridge interfaces. STP prevents network loops by blocking redundant paths and enables automatic failover when the primary path fails.", "title": "stp", "type": "boolean", "_name_": "stp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol to use for bonding interfaces. LACP uses 802.3ad dynamic negotiation, FAILOVER provides active-backup, LOADBALANCE and ROUNDROBIN distribute traffic across links.", "enum": ["LACP", "FAILOVER", "LOADBALANCE", "ROUNDROBIN", "NONE"], "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "xmit_hash_policy": {"description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "enum": ["LAYER2", "LAYER2+3", "LAYER3+4", null], "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "enum": ["SLOW", "FAST", null], "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "lag_ports": {"description": "List of interface names to include in the link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "vlan_parent_interface": {"description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "type": "string", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"description": "VLAN tag number (1-4094).", "ge": 1, "le": 4094, "title": "vlan_tag", "type": "integer", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"maximum": 7, "minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization (0-7). Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "mtu": {"anyOf": [{"maximum": 9216, "minimum": 68, "type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface (68-9216 bytes).", "title": "mtu", "_name_": "mtu", "_required_": false}}, "title": "data", "type": "object", "description": "Updated interface configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["name", "description", "ipv4_dhcp", "ipv6_auto", "aliases", "failover_critical", "failover_group", "failover_vhid", "failover_aliases", "failover_virtual_aliases", "bridge_members", "enable_learning", "stp", "lag_protocol", "xmit_hash_policy", "lacpdu_rate", "lag_ports", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "mtu"]}], "returns": [{"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for the network interface.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "fake": {"description": "Whether this is a fake/simulated interface for testing purposes.", "title": "fake", "type": "boolean", "_name_": "fake", "_required_": true}, "type": {"description": "Type of interface (PHYSICAL, BRIDGE, LINK_AGGREGATION, VLAN, etc.).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "state": {"additionalProperties": false, "properties": {"name": {"description": "Current name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "orig_name": {"description": "Original name of the network interface before any renaming.", "title": "orig_name", "type": "string", "_name_": "orig_name", "_required_": true}, "description": {"description": "Human-readable description of the network interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"description": "Maximum transmission unit size for the interface.", "title": "mtu", "type": "integer", "_name_": "mtu", "_required_": true}, "cloned": {"description": "Whether the interface is a cloned/virtual interface.", "title": "cloned", "type": "boolean", "_name_": "cloned", "_required_": true}, "flags": {"description": "List of interface flags indicating various states and capabilities. Common flags include UP, DOWN, RUNNING, MULTICAST, BROADCAST, LOOPBACK, and POINTOPOINT.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}, "nd6_flags": {"description": "IPv6 neighbor discovery flags. These control IPv6 autoconfiguration behavior and include flags like AUTO_LINKLOCAL, ACCEPT_RTADV, and PERFORMNUD.", "items": [{}], "title": "nd6_flags", "type": "array", "_name_": "nd6_flags", "_required_": true}, "capabilities": {"description": "List of hardware capabilities supported by the interface. Common capabilities include VLAN_MTU, JUMBO_MTU, VLAN_HWTAGGING, VLAN_HWCSUM, and TSO4.", "items": [{}], "title": "capabilities", "type": "array", "_name_": "capabilities", "_required_": true}, "link_state": {"description": "Current link state of the interface (up, down, etc.).", "title": "link_state", "type": "string", "_name_": "link_state", "_required_": true}, "media_type": {"description": "Type of media/connection for the interface. Examples include Ethernet, 802.11, or loopback.", "title": "media_type", "type": "string", "_name_": "media_type", "_required_": true}, "media_subtype": {"description": "Subtype of media/connection for the interface. Examples include 1000baseT, 100baseTX, or autoselect.", "title": "media_subtype", "type": "string", "_name_": "media_subtype", "_required_": true}, "active_media_type": {"description": "Currently active media type. This may differ from configured media_type during autonegotiation.", "title": "active_media_type", "type": "string", "_name_": "active_media_type", "_required_": true}, "active_media_subtype": {"description": "Currently active media subtype. This reflects the actual negotiated connection speed and type.", "title": "active_media_subtype", "type": "string", "_name_": "active_media_subtype", "_required_": true}, "supported_media": {"description": "List of supported media types for the interface. Contains media descriptors like '1000baseT ' or 'autoselect'.", "items": [{}], "title": "supported_media", "type": "array", "_name_": "supported_media", "_required_": true}, "media_options": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "Available media options for the interface. Options may include 'full-duplex', 'half-duplex', 'flowcontrol', or 'rxpause'.", "title": "media_options", "_name_": "media_options", "_required_": true}, "link_address": {"description": "MAC address of the interface.", "title": "link_address", "type": "string", "_name_": "link_address", "_required_": true}, "permanent_link_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Permanent MAC address of the interface if different from current.", "title": "permanent_link_address", "_name_": "permanent_link_address", "_required_": true}, "hardware_link_address": {"description": "Hardware MAC address of the interface.", "title": "hardware_link_address", "type": "string", "_name_": "hardware_link_address", "_required_": true}, "rx_queues": {"description": "Number of receive queues configured for the interface.", "title": "rx_queues", "type": "integer", "_name_": "rx_queues", "_required_": false}, "tx_queues": {"description": "Number of transmit queues configured for the interface.", "title": "tx_queues", "type": "integer", "_name_": "tx_queues", "_required_": false}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": false}, "broadcast": {"description": "Broadcast address for the network interface.", "title": "broadcast", "type": "string", "_name_": "broadcast", "_required_": false}}, "required": ["type", "address"], "title": "InterfaceEntryStateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask", "broadcast"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "vrrp_config": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "default": [], "description": "VRRP (Virtual Router Redundancy Protocol) configuration for the interface.", "title": "vrrp_config", "_name_": "vrrp_config", "_required_": false}, "protocol": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Link aggregation protocol used (LACP, FAILOVER, etc.).", "title": "protocol", "_name_": "protocol", "_required_": false}, "ports": {"default": [], "description": "List of ports that are members of this link aggregation group.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "The name of the port interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "flags": {"description": "List of flags associated with the port.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}}, "required": ["name", "flags"], "title": "InterfaceEntryStatePort", "type": "object", "_attrs_order_": ["name", "flags"]}], "title": "ports", "type": "array", "_name_": "ports", "_required_": false}, "xmit_hash_policy": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "parent": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "parent", "_name_": "parent", "_required_": false}, "tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number.", "title": "tag", "_name_": "tag", "_required_": false}, "pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization. Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "pcp", "_name_": "pcp", "_required_": false}}, "required": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "aliases"], "title": "state", "type": "object", "description": "Current runtime state information for the interface.", "_name_": "state", "_required_": true, "_attrs_order_": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "rx_queues", "tx_queues", "aliases", "vrrp_config", "protocol", "ports", "xmit_hash_policy", "lacpdu_rate", "parent", "tag", "pcp"]}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "InterfaceEntryAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "ipv4_dhcp": {"description": "Whether IPv4 DHCP is enabled for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": true}, "ipv6_auto": {"description": "Whether IPv6 autoconfiguration is enabled.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": true}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface.", "title": "mtu", "_name_": "mtu", "_required_": true}, "vlan_parent_interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number for VLAN interfaces.", "title": "vlan_tag", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol (LACP, FAILOVER, LOADBALANCE, etc.).", "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "lag_ports": {"default": [], "description": "List of interface names that are members of this link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "bridge_members": {"default": [], "description": "List of interface names that are members of this bridge.", "items": [{"type": "string"}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Whether MAC address learning is enabled for bridge interfaces.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}}, "required": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu"], "title": "result", "type": "object", "description": "The updated interface configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "lag_protocol", "lag_ports", "bridge_members", "enable_learning"]}]}, "interface.vlan_parent_interface_choices": {"description": "Return available interface choices for `vlan_parent_interface` attribute.", "cli_description": "Return available interface choices for `vlan_parent_interface` attribute", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Names and descriptions of available interfaces for `vlan_parent_interface` attribute.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "interface.websocket_interface": {"description": "Returns the interface this websocket is connected to.", "cli_description": "Returns the interface this websocket is connected to", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"anyOf": [{"additionalProperties": true, "properties": {"id": {"description": "Unique identifier for the network interface.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "fake": {"description": "Whether this is a fake/simulated interface for testing purposes.", "title": "fake", "type": "boolean", "_name_": "fake", "_required_": true}, "type": {"description": "Type of interface (PHYSICAL, BRIDGE, LINK_AGGREGATION, VLAN, etc.).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "state": {"additionalProperties": false, "properties": {"name": {"description": "Current name of the network interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "orig_name": {"description": "Original name of the network interface before any renaming.", "title": "orig_name", "type": "string", "_name_": "orig_name", "_required_": true}, "description": {"description": "Human-readable description of the network interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"description": "Maximum transmission unit size for the interface.", "title": "mtu", "type": "integer", "_name_": "mtu", "_required_": true}, "cloned": {"description": "Whether the interface is a cloned/virtual interface.", "title": "cloned", "type": "boolean", "_name_": "cloned", "_required_": true}, "flags": {"description": "List of interface flags indicating various states and capabilities. Common flags include UP, DOWN, RUNNING, MULTICAST, BROADCAST, LOOPBACK, and POINTOPOINT.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}, "nd6_flags": {"description": "IPv6 neighbor discovery flags. These control IPv6 autoconfiguration behavior and include flags like AUTO_LINKLOCAL, ACCEPT_RTADV, and PERFORMNUD.", "items": [{}], "title": "nd6_flags", "type": "array", "_name_": "nd6_flags", "_required_": true}, "capabilities": {"description": "List of hardware capabilities supported by the interface. Common capabilities include VLAN_MTU, JUMBO_MTU, VLAN_HWTAGGING, VLAN_HWCSUM, and TSO4.", "items": [{}], "title": "capabilities", "type": "array", "_name_": "capabilities", "_required_": true}, "link_state": {"description": "Current link state of the interface (up, down, etc.).", "title": "link_state", "type": "string", "_name_": "link_state", "_required_": true}, "media_type": {"description": "Type of media/connection for the interface. Examples include Ethernet, 802.11, or loopback.", "title": "media_type", "type": "string", "_name_": "media_type", "_required_": true}, "media_subtype": {"description": "Subtype of media/connection for the interface. Examples include 1000baseT, 100baseTX, or autoselect.", "title": "media_subtype", "type": "string", "_name_": "media_subtype", "_required_": true}, "active_media_type": {"description": "Currently active media type. This may differ from configured media_type during autonegotiation.", "title": "active_media_type", "type": "string", "_name_": "active_media_type", "_required_": true}, "active_media_subtype": {"description": "Currently active media subtype. This reflects the actual negotiated connection speed and type.", "title": "active_media_subtype", "type": "string", "_name_": "active_media_subtype", "_required_": true}, "supported_media": {"description": "List of supported media types for the interface. Contains media descriptors like '1000baseT ' or 'autoselect'.", "items": [{}], "title": "supported_media", "type": "array", "_name_": "supported_media", "_required_": true}, "media_options": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "Available media options for the interface. Options may include 'full-duplex', 'half-duplex', 'flowcontrol', or 'rxpause'.", "title": "media_options", "_name_": "media_options", "_required_": true}, "link_address": {"description": "MAC address of the interface.", "title": "link_address", "type": "string", "_name_": "link_address", "_required_": true}, "permanent_link_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Permanent MAC address of the interface if different from current.", "title": "permanent_link_address", "_name_": "permanent_link_address", "_required_": true}, "hardware_link_address": {"description": "Hardware MAC address of the interface.", "title": "hardware_link_address", "type": "string", "_name_": "hardware_link_address", "_required_": true}, "rx_queues": {"description": "Number of receive queues configured for the interface.", "title": "rx_queues", "type": "integer", "_name_": "rx_queues", "_required_": false}, "tx_queues": {"description": "Number of transmit queues configured for the interface.", "title": "tx_queues", "type": "integer", "_name_": "tx_queues", "_required_": false}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": false}, "broadcast": {"description": "Broadcast address for the network interface.", "title": "broadcast", "type": "string", "_name_": "broadcast", "_required_": false}}, "required": ["type", "address"], "title": "InterfaceEntryStateAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask", "broadcast"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "vrrp_config": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "default": [], "description": "VRRP (Virtual Router Redundancy Protocol) configuration for the interface.", "title": "vrrp_config", "_name_": "vrrp_config", "_required_": false}, "protocol": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Link aggregation protocol used (LACP, FAILOVER, etc.).", "title": "protocol", "_name_": "protocol", "_required_": false}, "ports": {"default": [], "description": "List of ports that are members of this link aggregation group.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "The name of the port interface.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "flags": {"description": "List of flags associated with the port.", "items": [{"type": "string"}], "title": "flags", "type": "array", "_name_": "flags", "_required_": true}}, "required": ["name", "flags"], "title": "InterfaceEntryStatePort", "type": "object", "_attrs_order_": ["name", "flags"]}], "title": "ports", "type": "array", "_name_": "ports", "_required_": false}, "xmit_hash_policy": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Transmit hash policy for load balancing in link aggregation. LAYER2 uses MAC addresses, LAYER2+3 adds IP addresses, and LAYER3+4 includes TCP/UDP ports for distribution.", "title": "xmit_hash_policy", "_name_": "xmit_hash_policy", "_required_": false}, "lacpdu_rate": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "LACP data unit transmission rate. SLOW sends LACPDUs every 30 seconds, FAST sends every 1 second for quicker link failure detection.", "title": "lacpdu_rate", "_name_": "lacpdu_rate", "_required_": false}, "parent": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "parent", "_name_": "parent", "_required_": false}, "tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number.", "title": "tag", "_name_": "tag", "_required_": false}, "pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization. Values 0-7 map to different QoS priority levels, with 0 being lowest and 7 highest priority.", "title": "pcp", "_name_": "pcp", "_required_": false}}, "required": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "aliases"], "title": "state", "type": "object", "description": "Current runtime state information for the interface.", "_name_": "state", "_required_": true, "_attrs_order_": ["name", "orig_name", "description", "mtu", "cloned", "flags", "nd6_flags", "capabilities", "link_state", "media_type", "media_subtype", "active_media_type", "active_media_subtype", "supported_media", "media_options", "link_address", "permanent_link_address", "hardware_link_address", "rx_queues", "tx_queues", "aliases", "vrrp_config", "protocol", "ports", "xmit_hash_policy", "lacpdu_rate", "parent", "tag", "pcp"]}, "aliases": {"description": "List of IP address aliases configured on the interface.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "The type of IP address (INET for IPv4, INET6 for IPv6).", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "The IP address value.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "The network mask for the IP address, either as a string or CIDR notation integer.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "InterfaceEntryAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "ipv4_dhcp": {"description": "Whether IPv4 DHCP is enabled for automatic IP address assignment.", "title": "ipv4_dhcp", "type": "boolean", "_name_": "ipv4_dhcp", "_required_": true}, "ipv6_auto": {"description": "Whether IPv6 autoconfiguration is enabled.", "title": "ipv6_auto", "type": "boolean", "_name_": "ipv6_auto", "_required_": true}, "description": {"description": "Human-readable description of the interface.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "mtu": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmission unit size for the interface.", "title": "mtu", "_name_": "mtu", "_required_": true}, "vlan_parent_interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Parent interface for VLAN configuration.", "title": "vlan_parent_interface", "_name_": "vlan_parent_interface", "_required_": false}, "vlan_tag": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN tag number for VLAN interfaces.", "title": "vlan_tag", "_name_": "vlan_tag", "_required_": false}, "vlan_pcp": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Priority Code Point for VLAN traffic prioritization.", "title": "vlan_pcp", "_name_": "vlan_pcp", "_required_": false}, "lag_protocol": {"description": "Link aggregation protocol (LACP, FAILOVER, LOADBALANCE, etc.).", "title": "lag_protocol", "type": "string", "_name_": "lag_protocol", "_required_": false}, "lag_ports": {"default": [], "description": "List of interface names that are members of this link aggregation group.", "items": [{"type": "string"}], "title": "lag_ports", "type": "array", "_name_": "lag_ports", "_required_": false}, "bridge_members": {"default": [], "description": "List of interface names that are members of this bridge.", "items": [{"type": "string"}], "title": "bridge_members", "type": "array", "_name_": "bridge_members", "_required_": false}, "enable_learning": {"description": "Whether MAC address learning is enabled for bridge interfaces.", "title": "enable_learning", "type": "boolean", "_name_": "enable_learning", "_required_": false}}, "required": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu"], "title": "InterfaceEntry", "type": "object", "_attrs_order_": ["id", "name", "fake", "type", "state", "aliases", "ipv4_dhcp", "ipv6_auto", "description", "mtu", "vlan_parent_interface", "vlan_tag", "vlan_pcp", "lag_protocol", "lag_ports", "bridge_members", "enable_learning"]}, {"type": "null"}], "description": "The interface used for the current websocket connection or `null` if not available.", "title": "result", "_name_": "result", "_required_": true}]}, "interface.websocket_local_ip": {"description": "Returns the local ip address for this websocket session.", "cli_description": "Returns the local ip address for this websocket session", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}, {"type": "null"}], "description": "The local IP address for the current websocket session or `null`.", "title": "result", "_name_": "result", "_required_": true}]}, "interface.xmit_hash_policy_choices": {"description": "Available transmit hash policies for the LACP or LOADBALANCE\nlagg type interfaces.", "cli_description": "Available transmit hash policies for the LACP or LOADBALANCE lagg type interfaces", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"LAYER2": {"const": "LAYER2", "description": "Use MAC addresses for traffic distribution across bond members.", "enum": ["LAYER2"], "title": "LAYER2", "type": "string", "_name_": "LAYER2", "_required_": true}, "LAYER2+3": {"const": "LAYER2+3", "description": "Use MAC and IP addresses for traffic distribution across bond members.", "enum": ["LAYER2+3"], "title": "LAYER2+3", "type": "string", "_name_": "LAYER2+3", "_required_": true}, "LAYER3+4": {"const": "LAYER3+4", "description": "Use MAC, IP, and TCP/UDP port information for traffic distribution across bond members.", "enum": ["LAYER3+4"], "title": "LAYER3+4", "type": "string", "_name_": "LAYER3+4", "_required_": true}}, "required": ["LAYER2", "LAYER2+3", "LAYER3+4"], "title": "result", "type": "object", "description": "InterfaceXmitHashPolicyChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["LAYER2", "LAYER2+3", "LAYER3+4"]}]}, "ipmi.is_loaded": {"description": "Returns a boolean value indicating if /dev/ipmi0 is loaded.", "cli_description": "Returns a boolean value indicating if /dev/ipmi0 is loaded", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Returns `true` if IPMI modules are loaded and available, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "ipmi.chassis.identify": {"description": "Toggle the chassis identify light.\n\n`verb`: str if 'ON' turn identify light on. if 'OFF' turn identify light off.\n`apply_remote`: bool if True on HA systems, apply to remote controller.", "cli_description": "Toggle the chassis identify light", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["IPMI_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"verb": {"default": "ON", "description": "Action to perform on the chassis identify LED.", "enum": ["ON", "OFF"], "title": "verb", "type": "string", "_name_": "verb", "_required_": false}, "apply_remote": {"default": false, "description": "If on an HA system, and this field is set to True, the settings will be sent to the remote controller.", "title": "apply_remote", "type": "boolean", "_name_": "apply_remote", "_required_": false}}, "title": "data", "type": "object", "description": "Request parameters for IPMI chassis identify operation.", "_name_": "data", "_required_": false, "_attrs_order_": ["verb", "apply_remote"]}], "returns": [{"description": "Returns `null` when the chassis identify operation completes successfully.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "ipmi.chassis.info": {"description": "Return IPMI chassis info.\n\n`query-remote`: [optional] if True on HA system, then return info from remote controller.", "cli_description": "Return IPMI chassis info", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["IPMI_READ", "IPMI_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"query-remote": {"default": false, "description": "Whether to query remote IPMI chassis information on HA systems.", "title": "query-remote", "type": "boolean", "_name_": "query-remote", "_required_": false}}, "title": "data", "type": "object", "description": "Request parameters for IPMI chassis information.", "_name_": "data", "_required_": false, "_attrs_order_": ["query-remote"]}], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"system_power": {"description": "Current system power state.", "examples": ["on", "off"], "title": "system_power", "type": "string", "_name_": "system_power", "_required_": true}, "power_overload": {"description": "Power overload status indicator.", "title": "power_overload", "type": "string", "_name_": "power_overload", "_required_": true}, "interlock": {"description": "Chassis interlock status.", "title": "interlock", "type": "string", "_name_": "interlock", "_required_": true}, "power_fault": {"description": "Power fault status indicator.", "title": "power_fault", "type": "string", "_name_": "power_fault", "_required_": true}, "power_control_fault": {"description": "Power control fault status indicator.", "title": "power_control_fault", "type": "string", "_name_": "power_control_fault", "_required_": true}, "power_restore_policy": {"description": "Policy for restoring power after a power loss.", "title": "power_restore_policy", "type": "string", "_name_": "power_restore_policy", "_required_": true}, "last_power_event": {"description": "Description of the last power-related event.", "title": "last_power_event", "type": "string", "_name_": "last_power_event", "_required_": true}, "chassis_intrusion": {"description": "Chassis intrusion detection status.", "title": "chassis_intrusion", "type": "string", "_name_": "chassis_intrusion", "_required_": true}, "front_panel_lockout": {"description": "Front panel lockout status indicator.", "title": "front_panel_lockout", "type": "string", "_name_": "front_panel_lockout", "_required_": true}, "drive_fault": {"description": "Drive fault status indicator.", "title": "drive_fault", "type": "string", "_name_": "drive_fault", "_required_": true}, "cooling/fan_fault": {"description": "Cooling fan fault status indicator.", "title": "cooling/fan_fault", "type": "string", "_name_": "cooling/fan_fault", "_required_": true}, "chassis_identify_state": {"description": "Current chassis identify LED state.", "title": "chassis_identify_state", "type": "string", "_name_": "chassis_identify_state", "_required_": true}}, "required": ["system_power", "power_overload", "interlock", "power_fault", "power_control_fault", "power_restore_policy", "last_power_event", "chassis_intrusion", "front_panel_lockout", "drive_fault", "cooling/fan_fault", "chassis_identify_state"], "title": "IPMIChassisInfo", "type": "object", "_attrs_order_": ["system_power", "power_overload", "interlock", "power_fault", "power_control_fault", "power_restore_policy", "last_power_event", "chassis_intrusion", "front_panel_lockout", "drive_fault", "cooling/fan_fault", "chassis_identify_state"]}, {"type": "object"}], "description": "IPMI chassis information or raw dictionary if parsing fails.", "title": "result", "_name_": "result", "_required_": true}]}, "ipmi.lan.channels": {"description": "Return a list of available IPMI channels.", "cli_description": "Return a list of available IPMI channels", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["IPMI_READ", "IPMI_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available IPMI LAN channel numbers.", "items": [{"type": "integer"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "ipmi.lan.query": {"description": "Query available IPMI Channels with `query-filters` and `query-options`.", "cli_description": "Query available IPMI Channels with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["IPMI_READ", "IPMI_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"query-filters": {"default": [], "description": "Query filters to apply to IPMI LAN configuration results.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "query-filters", "type": "array", "_name_": "query-filters", "_required_": false}, "query-options": {"additionalProperties": false, "description": "Query options for sorting and pagination.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "query-options", "type": "object", "_name_": "query-options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}, "ipmi-options": {"additionalProperties": false, "properties": {"query-remote": {"default": false, "description": "Whether to query remote IPMI LAN configuration on HA systems.", "title": "query-remote", "type": "boolean", "_name_": "query-remote", "_required_": false}}, "title": "ipmi-options", "type": "object", "description": "IPMI-specific query options.", "_name_": "ipmi-options", "_required_": false, "_attrs_order_": ["query-remote"]}}, "title": "data", "type": "object", "description": "Query parameters for IPMI LAN configuration.", "_name_": "data", "_required_": false, "_attrs_order_": ["query-filters", "query-options", "ipmi-options"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"channel": {"description": "IPMI LAN channel number.", "title": "channel", "type": "integer", "_name_": "channel", "_required_": false}, "id": {"description": "Unique identifier for the IPMI LAN configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "ip_address_source": {"description": "Source type for IP address assignment (e.g., \"DHCP\", \"Static\").", "title": "ip_address_source", "type": "string", "_name_": "ip_address_source", "_required_": false}, "ip_address": {"description": "Current IP address assigned to the IPMI interface.", "title": "ip_address", "type": "string", "_name_": "ip_address", "_required_": false}, "mac_address": {"description": "MAC address of the IPMI network interface.", "title": "mac_address", "type": "string", "_name_": "mac_address", "_required_": false}, "subnet_mask": {"description": "Subnet mask for the IPMI network interface.", "title": "subnet_mask", "type": "string", "_name_": "subnet_mask", "_required_": false}, "default_gateway_ip_address": {"description": "IP address of the default gateway.", "title": "default_gateway_ip_address", "type": "string", "_name_": "default_gateway_ip_address", "_required_": false}, "default_gateway_mac_address": {"description": "MAC address of the default gateway.", "title": "default_gateway_mac_address", "type": "string", "_name_": "default_gateway_mac_address", "_required_": false}, "backup_gateway_ip_address": {"description": "IP address of the backup gateway.", "title": "backup_gateway_ip_address", "type": "string", "_name_": "backup_gateway_ip_address", "_required_": false}, "backup_gateway_mac_address": {"description": "MAC address of the backup gateway.", "title": "backup_gateway_mac_address", "type": "string", "_name_": "backup_gateway_mac_address", "_required_": false}, "vlan_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN ID number or `null` if VLAN is not configured.", "title": "vlan_id", "_name_": "vlan_id", "_required_": false}, "vlan_id_enable": {"description": "Whether VLAN tagging is enabled for this interface.", "title": "vlan_id_enable", "type": "boolean", "_name_": "vlan_id_enable", "_required_": false}, "vlan_priority": {"description": "VLAN priority level for tagged packets.", "title": "vlan_priority", "type": "integer", "_name_": "vlan_priority", "_required_": false}}, "title": "IPMILanQueryResultItem", "type": "object", "_attrs_order_": ["channel", "id", "ip_address_source", "ip_address", "mac_address", "subnet_mask", "default_gateway_ip_address", "default_gateway_mac_address", "backup_gateway_ip_address", "backup_gateway_mac_address", "vlan_id", "vlan_id_enable", "vlan_priority"]}], "type": "array"}, {"additionalProperties": false, "properties": {"channel": {"description": "IPMI LAN channel number.", "title": "channel", "type": "integer", "_name_": "channel", "_required_": false}, "id": {"description": "Unique identifier for the IPMI LAN configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "ip_address_source": {"description": "Source type for IP address assignment (e.g., \"DHCP\", \"Static\").", "title": "ip_address_source", "type": "string", "_name_": "ip_address_source", "_required_": false}, "ip_address": {"description": "Current IP address assigned to the IPMI interface.", "title": "ip_address", "type": "string", "_name_": "ip_address", "_required_": false}, "mac_address": {"description": "MAC address of the IPMI network interface.", "title": "mac_address", "type": "string", "_name_": "mac_address", "_required_": false}, "subnet_mask": {"description": "Subnet mask for the IPMI network interface.", "title": "subnet_mask", "type": "string", "_name_": "subnet_mask", "_required_": false}, "default_gateway_ip_address": {"description": "IP address of the default gateway.", "title": "default_gateway_ip_address", "type": "string", "_name_": "default_gateway_ip_address", "_required_": false}, "default_gateway_mac_address": {"description": "MAC address of the default gateway.", "title": "default_gateway_mac_address", "type": "string", "_name_": "default_gateway_mac_address", "_required_": false}, "backup_gateway_ip_address": {"description": "IP address of the backup gateway.", "title": "backup_gateway_ip_address", "type": "string", "_name_": "backup_gateway_ip_address", "_required_": false}, "backup_gateway_mac_address": {"description": "MAC address of the backup gateway.", "title": "backup_gateway_mac_address", "type": "string", "_name_": "backup_gateway_mac_address", "_required_": false}, "vlan_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "VLAN ID number or `null` if VLAN is not configured.", "title": "vlan_id", "_name_": "vlan_id", "_required_": false}, "vlan_id_enable": {"description": "Whether VLAN tagging is enabled for this interface.", "title": "vlan_id_enable", "type": "boolean", "_name_": "vlan_id_enable", "_required_": false}, "vlan_priority": {"description": "VLAN priority level for tagged packets.", "title": "vlan_priority", "type": "integer", "_name_": "vlan_priority", "_required_": false}}, "title": "IPMILanQueryResultItem", "type": "object", "_attrs_order_": ["channel", "id", "ip_address_source", "ip_address", "mac_address", "subnet_mask", "default_gateway_ip_address", "default_gateway_mac_address", "backup_gateway_ip_address", "backup_gateway_mac_address", "vlan_id", "vlan_id_enable", "vlan_priority"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "ipmi.lan.update": {"description": "Update IPMI channel configuration", "cli_description": "Update IPMI channel configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["IPMI_WRITE"], "accepts": [{"description": "IPMI LAN channel number to update.", "title": "channel", "type": "integer", "_name_": "channel", "_required_": true}, {"description": "IPMI LAN configuration data (DHCP or static IP).", "discriminator": {"mapping": {"False": "#/$defs/IPMILanUpdateOptionsStatic", "True": "#/$defs/IPMILanUpdateOptionsDHCP"}, "propertyName": "dhcp"}, "oneOf": [{"additionalProperties": false, "properties": {"dhcp": {"const": true, "description": "Turn on DHCP protocol for IP address management.", "enum": [true], "title": "dhcp", "type": "boolean", "_name_": "dhcp", "_required_": true}, "password REDACTED}, {"type": "null"}], "default": null, "description": "The password REDACTED,lower, 0-9, and special characters.", "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "vlan": {"anyOf": [{"maximum": 4096, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "The vlan tag number. A null value disables tagging.", "title": "vlan", "_name_": "vlan", "_required_": false}, "apply_remote": {"default": false, "description": "If on an HA system, and this field is set to True, the settings will be sent to the remote controller.", "title": "apply_remote", "type": "boolean", "_name_": "apply_remote", "_required_": false}}, "required": ["dhcp"], "title": "IPMILanUpdateOptionsDHCP", "type": "object", "_attrs_order_": ["dhcp", "password REDACTED, "vlan", "apply_remote"]}, {"additionalProperties": false, "properties": {"dhcp": {"const": false, "description": "Provide a static IP address.", "enum": [false], "title": "dhcp", "type": "boolean", "_name_": "dhcp", "_required_": true}, "password REDACTED}, {"type": "null"}], "default": null, "description": "The password REDACTED,lower, 0-9, and special characters.", "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "vlan": {"anyOf": [{"maximum": 4096, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "The vlan tag number. A null value disables tagging.", "title": "vlan", "_name_": "vlan", "_required_": false}, "apply_remote": {"default": false, "description": "If on an HA system, and this field is set to True, the settings will be sent to the remote controller.", "title": "apply_remote", "type": "boolean", "_name_": "apply_remote", "_required_": false}, "ipaddress": {"description": "The IPv4 address in the form of `192.168.1.150`.", "title": "ipaddress", "type": "string", "_name_": "ipaddress", "_required_": true}, "netmask": {"description": "The netmask in the form of `255.255.255.0`.", "title": "netmask", "type": "string", "_name_": "netmask", "_required_": true}, "gateway": {"description": "The gateway in the form of `192.168.1.1`.", "title": "gateway", "type": "string", "_name_": "gateway", "_required_": true}}, "required": ["dhcp", "ipaddress", "netmask", "gateway"], "title": "IPMILanUpdateOptionsStatic", "type": "object", "_attrs_order_": ["dhcp", "password REDACTED, "vlan", "apply_remote", "ipaddress", "netmask", "gateway"]}], "title": "data", "_name_": "data", "_required_": true}], "returns": [{"description": "Returns the channel number that was updated.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "ipmi.sel.clear": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["IPMI_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` when the SEL clear operation completes successfully.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "ipmi.sel.elist": {"description": "Query IPMI System Event Log (SEL) extended list", "cli_description": "Query IPMI System Event Log (SEL) extended list", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["IPMI_READ", "IPMI_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the SEL (System Event Log) entry.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "date": {"description": "Date when the event occurred.", "title": "date", "type": "string", "_name_": "date", "_required_": false}, "time": {"description": "Time when the event occurred.", "title": "time", "type": "string", "_name_": "time", "_required_": false}, "name": {"description": "Name or description of the sensor that generated the event.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of the event (e.g., \"Temperature\", \"Voltage\").", "title": "type", "type": "string", "_name_": "type", "_required_": false}, "event_direction": {"description": "Direction of the event (e.g., \"Assertion\", \"Deassertion\").", "title": "event_direction", "type": "string", "_name_": "event_direction", "_required_": false}, "event": {"description": "Detailed description of the event that occurred.", "title": "event", "type": "string", "_name_": "event", "_required_": false}}, "title": "IpmiSelElistQueryResultItem", "type": "object", "_attrs_order_": ["id", "date", "time", "name", "type", "event_direction", "event"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the SEL (System Event Log) entry.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "date": {"description": "Date when the event occurred.", "title": "date", "type": "string", "_name_": "date", "_required_": false}, "time": {"description": "Time when the event occurred.", "title": "time", "type": "string", "_name_": "time", "_required_": false}, "name": {"description": "Name or description of the sensor that generated the event.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of the event (e.g., \"Temperature\", \"Voltage\").", "title": "type", "type": "string", "_name_": "type", "_required_": false}, "event_direction": {"description": "Direction of the event (e.g., \"Assertion\", \"Deassertion\").", "title": "event_direction", "type": "string", "_name_": "event_direction", "_required_": false}, "event": {"description": "Detailed description of the event that occurred.", "title": "event", "type": "string", "_name_": "event", "_required_": false}}, "title": "IpmiSelElistQueryResultItem", "type": "object", "_attrs_order_": ["id", "date", "time", "name", "type", "event_direction", "event"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "ipmi.sel.info": {"description": "Query General information about the IPMI System Event Log", "cli_description": "Query General information about the IPMI System Event Log", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["IPMI_READ", "IPMI_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"sel_version": {"description": "Version of the SEL (System Event Log) implementation.", "title": "sel_version", "type": "string", "_name_": "sel_version", "_required_": true}, "number_of_log_entries": {"description": "Total number of entries currently in the SEL.", "title": "number_of_log_entries", "type": "string", "_name_": "number_of_log_entries", "_required_": true}, "free_space_remaining": {"description": "Amount of free space remaining in the SEL storage.", "title": "free_space_remaining", "type": "string", "_name_": "free_space_remaining", "_required_": true}, "recent_erase_timestamp": {"description": "Timestamp of the most recent SEL erase operation.", "title": "recent_erase_timestamp", "type": "string", "_name_": "recent_erase_timestamp", "_required_": true}, "get_sel_allocation_information_command": {"description": "Support status for the get SEL allocation information command.", "title": "get_sel_allocation_information_command", "type": "string", "_name_": "get_sel_allocation_information_command", "_required_": true}, "reserve_sel_command": {"description": "Support status for the reserve SEL command.", "title": "reserve_sel_command", "type": "string", "_name_": "reserve_sel_command", "_required_": true}, "partial_add_sel_entry_command": {"description": "Support status for the partial add SEL entry command.", "title": "partial_add_sel_entry_command", "type": "string", "_name_": "partial_add_sel_entry_command", "_required_": true}, "delete_sel_command": {"description": "Support status for the delete SEL command.", "title": "delete_sel_command", "type": "string", "_name_": "delete_sel_command", "_required_": true}, "events_dropped_due_to_lack_of_space": {"description": "Number of events that were dropped due to insufficient SEL space.", "title": "events_dropped_due_to_lack_of_space", "type": "string", "_name_": "events_dropped_due_to_lack_of_space", "_required_": true}, "number_of_possible_allocation_units": {"description": "Total number of allocation units that can be used for SEL storage.", "title": "number_of_possible_allocation_units", "type": "string", "_name_": "number_of_possible_allocation_units", "_required_": true}, "allocation_unit_size": {"description": "Size of each allocation unit in bytes.", "title": "allocation_unit_size", "type": "string", "_name_": "allocation_unit_size", "_required_": true}, "number_of_free_allocation_units": {"description": "Number of allocation units currently available for use.", "title": "number_of_free_allocation_units", "type": "string", "_name_": "number_of_free_allocation_units", "_required_": true}, "largest_free_block": {"description": "Size of the largest contiguous free block in allocation units.", "title": "largest_free_block", "type": "string", "_name_": "largest_free_block", "_required_": true}, "maximum_record_size": {"description": "Maximum size of a single SEL record in bytes.", "title": "maximum_record_size", "type": "string", "_name_": "maximum_record_size", "_required_": true}}, "required": ["sel_version", "number_of_log_entries", "free_space_remaining", "recent_erase_timestamp", "get_sel_allocation_information_command", "reserve_sel_command", "partial_add_sel_entry_command", "delete_sel_command", "events_dropped_due_to_lack_of_space", "number_of_possible_allocation_units", "allocation_unit_size", "number_of_free_allocation_units", "largest_free_block", "maximum_record_size"], "title": "IPMISELInfo", "type": "object", "_attrs_order_": ["sel_version", "number_of_log_entries", "free_space_remaining", "recent_erase_timestamp", "get_sel_allocation_information_command", "reserve_sel_command", "partial_add_sel_entry_command", "delete_sel_command", "events_dropped_due_to_lack_of_space", "number_of_possible_allocation_units", "allocation_unit_size", "number_of_free_allocation_units", "largest_free_block", "maximum_record_size"]}, {"type": "object"}], "description": "SEL information or raw dictionary if parsing fails.", "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.auth.create": {"description": "Create an iSCSI Authorized Access.\n\n`tag` should be unique among all configured iSCSI Authorized Accesses.\n\n`secret REDACTED, "cli_description": "Create an iSCSI Authorized Access", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_AUTH_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "peeruser": {"default": "", "description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "description": "Password REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"default": "NONE", "description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "required": ["tag", "user", "secret REDACTED, "title": "data", "type": "object", "description": "iSCSI authentication credential REDACTED, "_name_": "data", "_required_": true, "_attrs_order_": ["tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "peeruser": {"default": "", "description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "description": "Password REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"default": "NONE", "description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "required": ["id", "tag", "user", "secret REDACTED, "title": "result", "type": "object", "description": "The created iSCSI authentication credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}]}, "iscsi.auth.delete": {"description": "Delete iSCSI Authorized Access of `id`.", "cli_description": "Delete iSCSI Authorized Access of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_AUTH_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the iSCSI authentication credential REDACTED, "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.auth.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_AUTH_READ", "SHARING_ISCSI_AUTH_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "peeruser": {"default": "", "description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "description": "Password REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"default": "NONE", "description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "required": ["id", "tag", "user", "secret REDACTED, "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}]}, "iscsi.auth.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_AUTH_READ", "SHARING_ISCSI_AUTH_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": false}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": false}, "peeruser": {"description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "title": "IscsiAuthQueryResultItem", "type": "object", "_attrs_order_": ["id", "tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": false}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": false}, "peeruser": {"description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "title": "IscsiAuthQueryResultItem", "type": "object", "_attrs_order_": ["id", "tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.auth.update": {"description": "Update iSCSI Authorized Access of `id`.", "cli_description": "Update iSCSI Authorized Access of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_AUTH_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": false}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": false}, "peeruser": {"description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "title": "data", "type": "object", "description": "Updated iSCSI authentication credential REDACTED, "_name_": "data", "_required_": true, "_attrs_order_": ["tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI authentication credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "tag": {"description": "Numeric tag used to associate this credential REDACTED, "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "user": {"description": "Username for iSCSI CHAP authentication.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "secret REDACTED, "title": "secret REDACTED, "type": "string", "_name_": "secret REDACTED, "_required_": true}, "peeruser": {"default": "", "description": "Username for mutual CHAP authentication or empty string if not configured.", "title": "peeruser", "type": "string", "_name_": "peeruser", "_required_": false}, "peersecret REDACTED, "description": "Password REDACTED, "title": "peersecret REDACTED, "type": "string", "_name_": "peersecret REDACTED, "_required_": false}, "discovery_auth": {"default": "NONE", "description": "Authentication method for target discovery. If \"CHAP_MUTUAL\" is selected for target discovery, it is only permitted for a single entry systemwide.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "discovery_auth", "type": "string", "_name_": "discovery_auth", "_required_": false}}, "required": ["id", "tag", "user", "secret REDACTED, "title": "result", "type": "object", "description": "The updated iSCSI authentication credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "tag", "user", "secret REDACTED, "peeruser", "peersecret REDACTED, "discovery_auth"]}]}, "iscsi.extent.create": {"description": "Create an iSCSI Extent.\n\nWhen `type` is set to FILE, attribute `filesize` is used and it represents number of bytes. `filesize` if\nnot zero should be a multiple of `blocksize`. `path` is a required attribute with `type` set as FILE.\n\nWith `type` being set to DISK, a valid ZFS volume is required.\n\n`insecure_tpc` when enabled allows an initiator to bypass normal access control and access any scannable\ntarget. This allows xcopy operations otherwise blocked by access control.\n\n`xen` is a boolean value which is set to true if Xen is being used as the iSCSI initiator.\n\n`ro` when set to true prevents the initiator from writing to this LUN.", "cli_description": "Create an iSCSI Extent", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_EXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "DISK", "description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "default": "0", "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"default": 512, "description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"default": false, "description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "insecure_tpc": {"default": true, "description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"default": false, "description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"default": "SSD", "description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"default": false, "description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"default": true, "description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}}, "required": ["name"], "title": "iscsi_extent_create", "type": "object", "description": "iSCSI extent configuration data for creation.", "_name_": "iscsi_extent_create", "_required_": true, "_attrs_order_": ["name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "insecure_tpc", "xen", "rpm", "ro", "enabled", "product_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI extent.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "DISK", "description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "default": "0", "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"default": 512, "description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"default": false, "description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "naa": {"description": "Network Address Authority (NAA) identifier for the extent.", "maxLength": 34, "title": "naa", "type": "string", "_name_": "naa", "_required_": true}, "insecure_tpc": {"default": true, "description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"default": false, "description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"default": "SSD", "description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"default": false, "description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"default": true, "description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "vendor": {"description": "Vendor string reported by the extent.", "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the iscsi extent is located on a locked dataset.\n\n- `true`: The extent is in a locked dataset.\n- `false`: The extent is not in a locked dataset.\n- `null`: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}}, "required": ["id", "name", "naa", "vendor", "locked"], "title": "result", "type": "object", "description": "The created iSCSI extent configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "naa", "insecure_tpc", "xen", "rpm", "ro", "enabled", "vendor", "product_id", "locked"]}]}, "iscsi.extent.delete": {"description": "Delete iSCSI Extent of `id`.\n\nIf `id` iSCSI Extent's `type` was configured to FILE, `remove` can be set to remove the configured file.", "cli_description": "Delete iSCSI Extent of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_EXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI extent to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to remove the underlying file for file-based extents.", "title": "remove", "type": "boolean", "_name_": "remove", "_required_": false}, {"default": false, "description": "Whether to force deletion even if the extent is in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}], "returns": [{"const": true, "description": "Returns `true` when the iSCSI extent is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.extent.disk_choices": {"description": "Return a dict of available zvols that can be used\nwhen creating an extent.", "cli_description": "Return a dict of available zvols that can be used when creating an extent", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_EXTENT_READ", "SHARING_ISCSI_EXTENT_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping disk identifiers to their display names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "iscsi.extent.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_EXTENT_READ", "SHARING_ISCSI_EXTENT_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI extent.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "DISK", "description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "default": "0", "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"default": 512, "description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"default": false, "description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "naa": {"description": "Network Address Authority (NAA) identifier for the extent.", "maxLength": 34, "title": "naa", "type": "string", "_name_": "naa", "_required_": true}, "insecure_tpc": {"default": true, "description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"default": false, "description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"default": "SSD", "description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"default": false, "description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"default": true, "description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "vendor": {"description": "Vendor string reported by the extent.", "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the iscsi extent is located on a locked dataset.\n\n- `true`: The extent is in a locked dataset.\n- `false`: The extent is not in a locked dataset.\n- `null`: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}}, "required": ["id", "name", "naa", "vendor", "locked"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "naa", "insecure_tpc", "xen", "rpm", "ro", "enabled", "vendor", "product_id", "locked"]}]}, "iscsi.extent.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_EXTENT_READ", "SHARING_ISCSI_EXTENT_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI extent.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "naa": {"description": "Network Address Authority (NAA) identifier for the extent.", "maxLength": 34, "title": "naa", "type": "string", "_name_": "naa", "_required_": false}, "insecure_tpc": {"description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "vendor": {"description": "Vendor string reported by the extent.", "title": "vendor", "type": "string", "_name_": "vendor", "_required_": false}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the iscsi extent is located on a locked dataset.\n\n- `true`: The extent is in a locked dataset.\n- `false`: The extent is not in a locked dataset.\n- `null`: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": false}}, "title": "IscsiExtentQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "naa", "insecure_tpc", "xen", "rpm", "ro", "enabled", "vendor", "product_id", "locked"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI extent.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "naa": {"description": "Network Address Authority (NAA) identifier for the extent.", "maxLength": 34, "title": "naa", "type": "string", "_name_": "naa", "_required_": false}, "insecure_tpc": {"description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "vendor": {"description": "Vendor string reported by the extent.", "title": "vendor", "type": "string", "_name_": "vendor", "_required_": false}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the iscsi extent is located on a locked dataset.\n\n- `true`: The extent is in a locked dataset.\n- `false`: The extent is not in a locked dataset.\n- `null`: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": false}}, "title": "IscsiExtentQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "naa", "insecure_tpc", "xen", "rpm", "ro", "enabled", "vendor", "product_id", "locked"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.extent.update": {"description": "Update iSCSI Extent of `id`.", "cli_description": "Update iSCSI Extent of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_EXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI extent to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "insecure_tpc": {"description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}}, "title": "iscsi_extent_update", "type": "object", "description": "Updated iSCSI extent configuration data.", "_name_": "iscsi_extent_update", "_required_": true, "_attrs_order_": ["name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "insecure_tpc", "xen", "rpm", "ro", "enabled", "product_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI extent.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the iSCSI extent.", "maxLength": 64, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "DISK", "description": "Type of the extent storage backend.", "enum": ["DISK", "FILE"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "disk": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Disk device to use for the extent or `null` if using a file.", "title": "disk", "_name_": "disk", "_required_": false}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Serial number for the extent or `null` to auto-generate.", "title": "serial", "_name_": "serial", "_required_": false}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "File path for file-based extents or `null` if using a disk.", "title": "path", "_name_": "path", "_required_": false}, "filesize": {"anyOf": [{"type": "string"}, {"type": "integer"}], "default": "0", "description": "Size of the file-based extent in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "blocksize": {"default": 512, "description": "Block size for the extent in bytes.", "enum": [512, 1024, 2048, 4096], "title": "blocksize", "type": "integer", "_name_": "blocksize", "_required_": false}, "pblocksize": {"default": false, "description": "Whether to use physical block size reporting.", "title": "pblocksize", "type": "boolean", "_name_": "pblocksize", "_required_": false}, "avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Available space threshold percentage or `null` to disable.", "title": "avail_threshold", "_name_": "avail_threshold", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the extent.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "naa": {"description": "Network Address Authority (NAA) identifier for the extent.", "maxLength": 34, "title": "naa", "type": "string", "_name_": "naa", "_required_": true}, "insecure_tpc": {"default": true, "description": "Whether to enable insecure Third Party Copy (TPC) operations.", "title": "insecure_tpc", "type": "boolean", "_name_": "insecure_tpc", "_required_": false}, "xen": {"default": false, "description": "Whether to enable Xen compatibility mode.", "title": "xen", "type": "boolean", "_name_": "xen", "_required_": false}, "rpm": {"default": "SSD", "description": "Reported RPM type for the extent.", "enum": ["UNKNOWN", "SSD", "5400", "7200", "10000", "15000"], "title": "rpm", "type": "string", "_name_": "rpm", "_required_": false}, "ro": {"default": false, "description": "Whether the extent is read-only.", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "enabled": {"default": true, "description": "Whether the extent is enabled and available for use.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "vendor": {"description": "Vendor string reported by the extent.", "title": "vendor", "type": "string", "_name_": "vendor", "_required_": true}, "product_id": {"anyOf": [{"maxLength": 16, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product ID string for the extent or `null` for default.", "title": "product_id", "_name_": "product_id", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the iscsi extent is located on a locked dataset.\n\n- `true`: The extent is in a locked dataset.\n- `false`: The extent is not in a locked dataset.\n- `null`: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}}, "required": ["id", "name", "naa", "vendor", "locked"], "title": "result", "type": "object", "description": "The updated iSCSI extent configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "disk", "serial", "path", "filesize", "blocksize", "pblocksize", "avail_threshold", "comment", "naa", "insecure_tpc", "xen", "rpm", "ro", "enabled", "vendor", "product_id", "locked"]}]}, "iscsi.global.alua_enabled": {"description": "Returns whether iSCSI ALUA is enabled or not.", "cli_description": "Returns whether iSCSI ALUA is enabled or not", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_GLOBAL_READ", "SHARING_ISCSI_GLOBAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"description": "Returns `true` if ALUA is enabled, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.global.client_count": {"description": "Return currently connected clients count.", "cli_description": "Return currently connected clients count", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_GLOBAL_READ", "SHARING_ISCSI_GLOBAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"description": "Number of currently connected iSCSI clients.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "iscsi.global.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_GLOBAL_READ", "SHARING_ISCSI_GLOBAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the global iSCSI configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "basename": {"description": "Base name prefix for iSCSI target IQNs.", "title": "basename", "type": "string", "_name_": "basename", "_required_": true}, "isns_servers": {"description": "Array of iSNS (Internet Storage Name Service) server addresses.", "items": [{"type": "string"}], "title": "isns_servers", "type": "array", "_name_": "isns_servers", "_required_": true}, "listen_port": {"default": 3260, "description": "TCP port number for iSCSI connections.", "maximum": 65535, "minimum": 1025, "title": "listen_port", "type": "integer", "_name_": "listen_port", "_required_": false}, "pool_avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Pool available space threshold percentage or `null` to disable.", "title": "pool_avail_threshold", "_name_": "pool_avail_threshold", "_required_": false}, "alua": {"description": "Whether Asymmetric Logical Unit Access (ALUA) is enabled. Enabling is limited to TrueNAS Enterprise-licensed high availability systems. ALUA only works when configured on both the client and server.", "title": "alua", "type": "boolean", "_name_": "alua", "_required_": true}, "iser": {"description": "Whether iSCSI Extensions for RDMA (iSER) are enabled. Enabling is limited to TrueNAS Enterprise-licensed systems and requires the system and network environment have Remote Direct Memory Access (RDMA)-capable hardware.", "title": "iser", "type": "boolean", "_name_": "iser", "_required_": true}}, "required": ["id", "basename", "isns_servers", "alua", "iser"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "basename", "isns_servers", "listen_port", "pool_avail_threshold", "alua", "iser"]}]}, "iscsi.global.iser_enabled": {"description": "Returns whether iSER is enabled or not.", "cli_description": "Returns whether iSER is enabled or not", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_GLOBAL_READ", "SHARING_ISCSI_GLOBAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"description": "Returns `true` if iSER is enabled, `false` otherwise.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.global.sessions": {"description": "Get a list of currently running iSCSI sessions. This includes initiator and target names\nand the unique connection IDs.", "cli_description": "Get a list of currently running iSCSI sessions", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_GLOBAL_READ", "SHARING_ISCSI_GLOBAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "Query filters to apply to the session listing.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "query_filters", "type": "array", "_name_": "query_filters", "_required_": false}, {"additionalProperties": false, "description": "Query options for sorting and pagination.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "query_options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "query_options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"description": "Array of active iSCSI sessions.", "items": [{"additionalProperties": false, "properties": {"initiator": {"description": "iSCSI Qualified Name (IQN) of the initiator.", "title": "initiator", "type": "string", "_name_": "initiator", "_required_": true}, "initiator_addr": {"description": "IP address of the initiator.", "title": "initiator_addr", "type": "string", "_name_": "initiator_addr", "_required_": true}, "initiator_alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Alias name of the initiator or `null` if not set.", "title": "initiator_alias", "_name_": "initiator_alias", "_required_": true}, "target": {"description": "iSCSI Qualified Name (IQN) of the target.", "title": "target", "type": "string", "_name_": "target", "_required_": true}, "target_alias": {"description": "Alias name of the target.", "title": "target_alias", "type": "string", "_name_": "target_alias", "_required_": true}, "header_digest": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Header digest algorithm used for the session or `null`.", "title": "header_digest", "_name_": "header_digest", "_required_": true}, "data_digest": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Data digest algorithm used for the session or `null`.", "title": "data_digest", "_name_": "data_digest", "_required_": true}, "max_data_segment_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum data segment length for the session or `null`.", "title": "max_data_segment_length", "_name_": "max_data_segment_length", "_required_": true}, "max_receive_data_segment_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum receive data segment length or `null`.", "title": "max_receive_data_segment_length", "_name_": "max_receive_data_segment_length", "_required_": true}, "max_xmit_data_segment_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum transmit data segment length or `null`.", "title": "max_xmit_data_segment_length", "_name_": "max_xmit_data_segment_length", "_required_": true}, "max_burst_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum burst length for the session or `null`.", "title": "max_burst_length", "_name_": "max_burst_length", "_required_": true}, "first_burst_length": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "First burst length for the session or `null`.", "title": "first_burst_length", "_name_": "first_burst_length", "_required_": true}, "immediate_data": {"description": "Whether immediate data transfer is enabled.", "title": "immediate_data", "type": "boolean", "_name_": "immediate_data", "_required_": true}, "iser": {"description": "Whether this session is using iSER (iSCSI Extensions for RDMA).", "title": "iser", "type": "boolean", "_name_": "iser", "_required_": true}, "offload": {"description": "Whether hardware offload is enabled for this session.", "title": "offload", "type": "boolean", "_name_": "offload", "_required_": true}}, "required": ["initiator", "initiator_addr", "initiator_alias", "target", "target_alias", "header_digest", "data_digest", "max_data_segment_length", "max_receive_data_segment_length", "max_xmit_data_segment_length", "max_burst_length", "first_burst_length", "immediate_data", "iser", "offload"], "title": "IscsiSession", "type": "object", "_attrs_order_": ["initiator", "initiator_addr", "initiator_alias", "target", "target_alias", "header_digest", "data_digest", "max_data_segment_length", "max_receive_data_segment_length", "max_xmit_data_segment_length", "max_burst_length", "first_burst_length", "immediate_data", "iser", "offload"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "iscsi.global.update": {"description": "`alua` is a no-op for FreeNAS.", "cli_description": "`alua` is a no-op for FreeNAS", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_GLOBAL_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"basename": {"description": "Base name prefix for iSCSI target IQNs.", "title": "basename", "type": "string", "_name_": "basename", "_required_": false}, "isns_servers": {"description": "Array of iSNS (Internet Storage Name Service) server addresses.", "items": [{"type": "string"}], "title": "isns_servers", "type": "array", "_name_": "isns_servers", "_required_": false}, "listen_port": {"description": "TCP port number for iSCSI connections.", "maximum": 65535, "minimum": 1025, "title": "listen_port", "type": "integer", "_name_": "listen_port", "_required_": false}, "pool_avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Pool available space threshold percentage or `null` to disable.", "title": "pool_avail_threshold", "_name_": "pool_avail_threshold", "_required_": false}, "alua": {"description": "Whether Asymmetric Logical Unit Access (ALUA) is enabled. Enabling is limited to TrueNAS Enterprise-licensed high availability systems. ALUA only works when configured on both the client and server.", "title": "alua", "type": "boolean", "_name_": "alua", "_required_": false}, "iser": {"description": "Whether iSCSI Extensions for RDMA (iSER) are enabled. Enabling is limited to TrueNAS Enterprise-licensed systems and requires the system and network environment have Remote Direct Memory Access (RDMA)-capable hardware.", "title": "iser", "type": "boolean", "_name_": "iser", "_required_": false}}, "title": "iscsi_update", "type": "object", "description": "ISCSIGlobalUpdateArgs parameters.", "_name_": "iscsi_update", "_required_": true, "_attrs_order_": ["basename", "isns_servers", "listen_port", "pool_avail_threshold", "alua", "iser"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the global iSCSI configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "basename": {"description": "Base name prefix for iSCSI target IQNs.", "title": "basename", "type": "string", "_name_": "basename", "_required_": true}, "isns_servers": {"description": "Array of iSNS (Internet Storage Name Service) server addresses.", "items": [{"type": "string"}], "title": "isns_servers", "type": "array", "_name_": "isns_servers", "_required_": true}, "listen_port": {"default": 3260, "description": "TCP port number for iSCSI connections.", "maximum": 65535, "minimum": 1025, "title": "listen_port", "type": "integer", "_name_": "listen_port", "_required_": false}, "pool_avail_threshold": {"anyOf": [{"maximum": 99, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Pool available space threshold percentage or `null` to disable.", "title": "pool_avail_threshold", "_name_": "pool_avail_threshold", "_required_": false}, "alua": {"description": "Whether Asymmetric Logical Unit Access (ALUA) is enabled. Enabling is limited to TrueNAS Enterprise-licensed high availability systems. ALUA only works when configured on both the client and server.", "title": "alua", "type": "boolean", "_name_": "alua", "_required_": true}, "iser": {"description": "Whether iSCSI Extensions for RDMA (iSER) are enabled. Enabling is limited to TrueNAS Enterprise-licensed systems and requires the system and network environment have Remote Direct Memory Access (RDMA)-capable hardware.", "title": "iser", "type": "boolean", "_name_": "iser", "_required_": true}}, "required": ["id", "basename", "isns_servers", "alua", "iser"], "title": "result", "type": "object", "description": "The updated global iSCSI configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "basename", "isns_servers", "listen_port", "pool_avail_threshold", "alua", "iser"]}]}, "iscsi.initiator.create": {"description": "Create an iSCSI Initiator.\n\n`initiators` is a list of initiator hostnames which are authorized to access an iSCSI Target. To allow all\npossible initiators, `initiators` can be left empty.", "cli_description": "Create an iSCSI Initiator", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_INITIATOR_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"initiators": {"default": [], "description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "iscsi_initiator_create", "type": "object", "description": "Authorized initiator group configuration data for creation.", "_name_": "iscsi_initiator_create", "_required_": true, "_attrs_order_": ["initiators", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authorized initiator group.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "initiators": {"default": [], "description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "description": "The created authorized initiator group configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "initiators", "comment"]}]}, "iscsi.initiator.delete": {"description": "Delete iSCSI initiator of `id`.", "cli_description": "Delete iSCSI initiator of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_INITIATOR_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the authorized initiator group to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the authorized initiator group is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.initiator.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_INITIATOR_READ", "SHARING_ISCSI_INITIATOR_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authorized initiator group.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "initiators": {"default": [], "description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "initiators", "comment"]}]}, "iscsi.initiator.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_INITIATOR_READ", "SHARING_ISCSI_INITIATOR_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authorized initiator group.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "initiators": {"description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "IscsiInitiatorQueryResultItem", "type": "object", "_attrs_order_": ["id", "initiators", "comment"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authorized initiator group.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "initiators": {"description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "IscsiInitiatorQueryResultItem", "type": "object", "_attrs_order_": ["id", "initiators", "comment"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.initiator.update": {"description": "Update iSCSI initiator of `id`.", "cli_description": "Update iSCSI initiator of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_INITIATOR_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the authorized initiator group to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authorized initiator group.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "initiators": {"description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "iscsi_initiator_update", "type": "object", "description": "Updated authorized initiator group configuration data.", "_name_": "iscsi_initiator_update", "_required_": true, "_attrs_order_": ["id", "initiators", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the authorized initiator group.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "initiators": {"default": [], "description": "Array of iSCSI Qualified Names (IQNs) or IP addresses of authorized initiators.", "items": [{"type": "string"}], "title": "initiators", "type": "array", "_name_": "initiators", "_required_": false}, "comment": {"default": "", "description": "Optional comment describing the authorized initiator group.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "description": "The updated authorized initiator group configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "initiators", "comment"]}]}, "iscsi.portal.create": {"description": "Create a new iSCSI Portal.", "cli_description": "Create a new iSCSI Portal", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_PORTAL_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"listen": {"description": "Array of IP addresses for the portal to listen on.", "items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address for the iSCSI portal to listen on.", "minLength": 1, "title": "ip", "type": "string", "_name_": "ip", "_required_": true}}, "required": ["ip"], "title": "IscsiPortalIP", "type": "object", "_attrs_order_": ["ip"]}], "title": "listen", "type": "array", "_name_": "listen", "_required_": true}, "comment": {"default": "", "description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["listen"], "title": "iscsi_portal_create", "type": "object", "description": "iSCSI portal configuration data for creation.", "_name_": "iscsi_portal_create", "_required_": true, "_attrs_order_": ["listen", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI portal.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "listen": {"description": "Array of IP address and port combinations for the portal to listen on.", "items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address for the iSCSI portal to listen on.", "minLength": 1, "title": "ip", "type": "string", "_name_": "ip", "_required_": true}, "port": {"description": "TCP port number for the iSCSI portal.", "title": "port", "type": "integer", "_name_": "port", "_required_": true}}, "required": ["ip", "port"], "title": "IscsiPortalIPInfo", "type": "object", "_attrs_order_": ["ip", "port"]}], "title": "listen", "type": "array", "_name_": "listen", "_required_": true}, "tag": {"description": "Numeric tag used to associate this portal with iSCSI targets.", "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "comment": {"default": "", "description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "listen", "tag"], "title": "result", "type": "object", "description": "The created iSCSI portal configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "listen", "tag", "comment"]}]}, "iscsi.portal.delete": {"description": "Delete iSCSI Portal `id`.", "cli_description": "Delete iSCSI Portal `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_PORTAL_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI portal to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the iSCSI portal is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.portal.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_PORTAL_READ", "SHARING_ISCSI_PORTAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI portal.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "listen": {"description": "Array of IP address and port combinations for the portal to listen on.", "items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address for the iSCSI portal to listen on.", "minLength": 1, "title": "ip", "type": "string", "_name_": "ip", "_required_": true}, "port": {"description": "TCP port number for the iSCSI portal.", "title": "port", "type": "integer", "_name_": "port", "_required_": true}}, "required": ["ip", "port"], "title": "IscsiPortalIPInfo", "type": "object", "_attrs_order_": ["ip", "port"]}], "title": "listen", "type": "array", "_name_": "listen", "_required_": true}, "tag": {"description": "Numeric tag used to associate this portal with iSCSI targets.", "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "comment": {"default": "", "description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "listen", "tag"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "listen", "tag", "comment"]}]}, "iscsi.portal.listen_ip_choices": {"description": "Returns possible choices for `listen.ip` attribute of portal create and update.", "cli_description": "Returns possible choices for `listen", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_PORTAL_READ", "SHARING_ISCSI_PORTAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping IP addresses to their underlying constituents. Only static IP addresses will be included. On ALUA-enabled high availability systems, VIPs will be mapped to the pair of corresponding underlying addresses, one per node.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "iscsi.portal.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_PORTAL_READ", "SHARING_ISCSI_PORTAL_WRITE", "SHARING_ISCSI_READ", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI portal.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "listen": {"description": "Array of IP address and port combinations for the portal to listen on.", "items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address for the iSCSI portal to listen on.", "minLength": 1, "title": "ip", "type": "string", "_name_": "ip", "_required_": true}, "port": {"description": "TCP port number for the iSCSI portal.", "title": "port", "type": "integer", "_name_": "port", "_required_": true}}, "required": ["ip", "port"], "title": "IscsiPortalIPInfo", "type": "object", "_attrs_order_": ["ip", "port"]}], "title": "listen", "type": "array", "_name_": "listen", "_required_": false}, "tag": {"description": "Numeric tag used to associate this portal with iSCSI targets.", "title": "tag", "type": "integer", "_name_": "tag", "_required_": false}, "comment": {"description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "IscsiPortalQueryResultItem", "type": "object", "_attrs_order_": ["id", "listen", "tag", "comment"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI portal.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "listen": {"description": "Array of IP address and port combinations for the portal to listen on.", "items": [{}], "title": "listen", "type": "array", "_name_": "listen", "_required_": false}, "tag": {"description": "Numeric tag used to associate this portal with iSCSI targets.", "title": "tag", "type": "integer", "_name_": "tag", "_required_": false}, "comment": {"description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "IscsiPortalQueryResultItem", "type": "object", "_attrs_order_": ["id", "listen", "tag", "comment"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.portal.update": {"description": "Update iSCSI Portal `id`.", "cli_description": "Update iSCSI Portal `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_PORTAL_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI portal to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"listen": {"description": "Array of IP addresses for the portal to listen on.", "items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address for the iSCSI portal to listen on.", "minLength": 1, "title": "ip", "type": "string", "_name_": "ip", "_required_": true}}, "required": ["ip"], "title": "IscsiPortalIP", "type": "object", "_attrs_order_": ["ip"]}], "title": "listen", "type": "array", "_name_": "listen", "_required_": false}, "comment": {"description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "title": "iscsi_portal_update", "type": "object", "description": "Updated iSCSI portal configuration data.", "_name_": "iscsi_portal_update", "_required_": true, "_attrs_order_": ["listen", "comment"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI portal.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "listen": {"description": "Array of IP address and port combinations for the portal to listen on.", "items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address for the iSCSI portal to listen on.", "minLength": 1, "title": "ip", "type": "string", "_name_": "ip", "_required_": true}, "port": {"description": "TCP port number for the iSCSI portal.", "title": "port", "type": "integer", "_name_": "port", "_required_": true}}, "required": ["ip", "port"], "title": "IscsiPortalIPInfo", "type": "object", "_attrs_order_": ["ip", "port"]}], "title": "listen", "type": "array", "_name_": "listen", "_required_": true}, "tag": {"description": "Numeric tag used to associate this portal with iSCSI targets.", "title": "tag", "type": "integer", "_name_": "tag", "_required_": true}, "comment": {"default": "", "description": "Optional comment describing the portal.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}}, "required": ["id", "listen", "tag"], "title": "result", "type": "object", "description": "The updated iSCSI portal configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "listen", "tag", "comment"]}]}, "iscsi.target.create": {"description": "Create an iSCSI Target.\n\n`groups` is a list of group dictionaries which provide information related to using a `portal`, `initiator`,\n`authmethod` and `auth` with this target. `auth` represents a valid iSCSI Authorized Access and defaults to\nnull.\n\n`auth_networks` is a list of IP/CIDR addresses which are allowed to use this initiator. If all networks are\nto be allowed, this field should be left empty.", "cli_description": "Create an iSCSI Target", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"default": "ISCSI", "description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"default": [], "description": "Array of portal-initiator group associations for this target.", "items": [{"additionalProperties": false, "properties": {"portal": {"description": "ID of the iSCSI portal to use for this target group.", "title": "portal", "type": "integer", "_name_": "portal", "_required_": true}, "initiator": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authorized initiator group or `null` to allow any initiator.", "title": "initiator", "_name_": "initiator", "_required_": false}, "authmethod": {"default": "NONE", "description": "Authentication method for this target group.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "authmethod", "type": "string", "_name_": "authmethod", "_required_": false}, "auth": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authentication credential REDACTED, "title": "auth", "_name_": "auth", "_required_": false}}, "required": ["portal"], "title": "IscsiGroup", "type": "object", "_attrs_order_": ["portal", "initiator", "authmethod", "auth"]}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"default": [], "description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "iscsi_parameters": {"anyOf": [{"additionalProperties": false, "properties": {"QueuedCommands": {"anyOf": [{"enum": [32, 128], "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queued commands per iSCSI session.\n\n* `32`: Standard queue depth for most use cases\n* `128`: Higher queue depth for performance-critical applications", "title": "QueuedCommands", "_name_": "QueuedCommands", "_required_": false}}, "title": "IscsiTargetParameters", "type": "object", "_attrs_order_": ["QueuedCommands"]}, {"type": "null"}], "default": null, "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "required": ["name"], "title": "iscsi_target_create", "type": "object", "description": "iSCSI target configuration data for creation.", "_name_": "iscsi_target_create", "_required_": true, "_attrs_order_": ["name", "alias", "mode", "groups", "auth_networks", "iscsi_parameters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI target.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"default": "ISCSI", "description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"default": [], "description": "Array of portal-initiator group associations for this target.", "items": [{"additionalProperties": false, "properties": {"portal": {"description": "ID of the iSCSI portal to use for this target group.", "title": "portal", "type": "integer", "_name_": "portal", "_required_": true}, "initiator": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authorized initiator group or `null` to allow any initiator.", "title": "initiator", "_name_": "initiator", "_required_": false}, "authmethod": {"default": "NONE", "description": "Authentication method for this target group.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "authmethod", "type": "string", "_name_": "authmethod", "_required_": false}, "auth": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authentication credential REDACTED, "title": "auth", "_name_": "auth", "_required_": false}}, "required": ["portal"], "title": "IscsiGroup", "type": "object", "_attrs_order_": ["portal", "initiator", "authmethod", "auth"]}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"default": [], "description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "rel_tgt_id": {"description": "Relative target ID number assigned by the system.", "title": "rel_tgt_id", "type": "integer", "_name_": "rel_tgt_id", "_required_": true}, "iscsi_parameters": {"anyOf": [{"additionalProperties": false, "properties": {"QueuedCommands": {"anyOf": [{"enum": [32, 128], "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queued commands per iSCSI session.\n\n* `32`: Standard queue depth for most use cases\n* `128`: Higher queue depth for performance-critical applications", "title": "QueuedCommands", "_name_": "QueuedCommands", "_required_": false}}, "title": "IscsiTargetParameters", "type": "object", "_attrs_order_": ["QueuedCommands"]}, {"type": "null"}], "default": null, "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "required": ["id", "name", "rel_tgt_id"], "title": "result", "type": "object", "description": "The created iSCSI target configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "alias", "mode", "groups", "auth_networks", "rel_tgt_id", "iscsi_parameters"]}]}, "iscsi.target.delete": {"description": "Delete iSCSI Target of `id`.\n\nDeleting an iSCSI Target makes sure we delete all Associated Targets which use `id` iSCSI Target.", "cli_description": "Delete iSCSI Target of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI target to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to force deletion even if the target is in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, {"default": false, "description": "Whether to also delete associated extents.", "title": "delete_extents", "type": "boolean", "_name_": "delete_extents", "_required_": false}], "returns": [{"const": true, "description": "Returns `true` when the iSCSI target is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.target.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI target.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"default": "ISCSI", "description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"default": [], "description": "Array of portal-initiator group associations for this target.", "items": [{"additionalProperties": false, "properties": {"portal": {"description": "ID of the iSCSI portal to use for this target group.", "title": "portal", "type": "integer", "_name_": "portal", "_required_": true}, "initiator": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authorized initiator group or `null` to allow any initiator.", "title": "initiator", "_name_": "initiator", "_required_": false}, "authmethod": {"default": "NONE", "description": "Authentication method for this target group.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "authmethod", "type": "string", "_name_": "authmethod", "_required_": false}, "auth": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authentication credential REDACTED, "title": "auth", "_name_": "auth", "_required_": false}}, "required": ["portal"], "title": "IscsiGroup", "type": "object", "_attrs_order_": ["portal", "initiator", "authmethod", "auth"]}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"default": [], "description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "rel_tgt_id": {"description": "Relative target ID number assigned by the system.", "title": "rel_tgt_id", "type": "integer", "_name_": "rel_tgt_id", "_required_": true}, "iscsi_parameters": {"anyOf": [{"additionalProperties": false, "properties": {"QueuedCommands": {"anyOf": [{"enum": [32, 128], "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queued commands per iSCSI session.\n\n* `32`: Standard queue depth for most use cases\n* `128`: Higher queue depth for performance-critical applications", "title": "QueuedCommands", "_name_": "QueuedCommands", "_required_": false}}, "title": "IscsiTargetParameters", "type": "object", "_attrs_order_": ["QueuedCommands"]}, {"type": "null"}], "default": null, "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "required": ["id", "name", "rel_tgt_id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "alias", "mode", "groups", "auth_networks", "rel_tgt_id", "iscsi_parameters"]}]}, "iscsi.target.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGET_READ", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI target.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"description": "Array of portal-initiator group associations for this target.", "items": [{"additionalProperties": false, "properties": {"portal": {"description": "ID of the iSCSI portal to use for this target group.", "title": "portal", "type": "integer", "_name_": "portal", "_required_": true}, "initiator": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authorized initiator group or `null` to allow any initiator.", "title": "initiator", "_name_": "initiator", "_required_": false}, "authmethod": {"default": "NONE", "description": "Authentication method for this target group.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "authmethod", "type": "string", "_name_": "authmethod", "_required_": false}, "auth": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authentication credential REDACTED, "title": "auth", "_name_": "auth", "_required_": false}}, "required": ["portal"], "title": "IscsiGroup", "type": "object", "_attrs_order_": ["portal", "initiator", "authmethod", "auth"]}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "rel_tgt_id": {"description": "Relative target ID number assigned by the system.", "title": "rel_tgt_id", "type": "integer", "_name_": "rel_tgt_id", "_required_": false}, "iscsi_parameters": {"anyOf": [{"additionalProperties": false, "properties": {"QueuedCommands": {"anyOf": [{"enum": [32, 128], "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queued commands per iSCSI session.\n\n* `32`: Standard queue depth for most use cases\n* `128`: Higher queue depth for performance-critical applications", "title": "QueuedCommands", "_name_": "QueuedCommands", "_required_": false}}, "title": "IscsiTargetParameters", "type": "object", "_attrs_order_": ["QueuedCommands"]}, {"type": "null"}], "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "title": "IscsiTargetQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "alias", "mode", "groups", "auth_networks", "rel_tgt_id", "iscsi_parameters"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI target.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"description": "Array of portal-initiator group associations for this target.", "items": [{}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "rel_tgt_id": {"description": "Relative target ID number assigned by the system.", "title": "rel_tgt_id", "type": "integer", "_name_": "rel_tgt_id", "_required_": false}, "iscsi_parameters": {"anyOf": [{}, {"type": "null"}], "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "title": "IscsiTargetQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "alias", "mode", "groups", "auth_networks", "rel_tgt_id", "iscsi_parameters"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.target.update": {"description": "Update iSCSI Target of `id`.", "cli_description": "Update iSCSI Target of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the iSCSI target to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"description": "Array of portal-initiator group associations for this target.", "items": [{"additionalProperties": false, "properties": {"portal": {"description": "ID of the iSCSI portal to use for this target group.", "title": "portal", "type": "integer", "_name_": "portal", "_required_": true}, "initiator": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authorized initiator group or `null` to allow any initiator.", "title": "initiator", "_name_": "initiator", "_required_": false}, "authmethod": {"default": "NONE", "description": "Authentication method for this target group.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "authmethod", "type": "string", "_name_": "authmethod", "_required_": false}, "auth": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authentication credential REDACTED, "title": "auth", "_name_": "auth", "_required_": false}}, "required": ["portal"], "title": "IscsiGroup", "type": "object", "_attrs_order_": ["portal", "initiator", "authmethod", "auth"]}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "iscsi_parameters": {"anyOf": [{"additionalProperties": false, "properties": {"QueuedCommands": {"anyOf": [{"enum": [32, 128], "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queued commands per iSCSI session.\n\n* `32`: Standard queue depth for most use cases\n* `128`: Higher queue depth for performance-critical applications", "title": "QueuedCommands", "_name_": "QueuedCommands", "_required_": false}}, "title": "IscsiTargetParameters", "type": "object", "_attrs_order_": ["QueuedCommands"]}, {"type": "null"}], "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "title": "iscsi_target_update", "type": "object", "description": "Updated iSCSI target configuration data.", "_name_": "iscsi_target_update", "_required_": true, "_attrs_order_": ["name", "alias", "mode", "groups", "auth_networks", "iscsi_parameters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the iSCSI target.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the iSCSI target (maximum 120 characters).", "maxLength": 120, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "alias": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional alias name for the iSCSI target.", "title": "alias", "_name_": "alias", "_required_": false}, "mode": {"default": "ISCSI", "description": "Protocol mode for the target.\n\n* `ISCSI`: iSCSI protocol only\n* `FC`: Fibre Channel protocol only\n* `BOTH`: Both iSCSI and Fibre Channel protocols\n\nFibre Channel may only be selected on TrueNAS Enterprise-licensed systems with a suitable Fibre Channel HBA.", "enum": ["ISCSI", "FC", "BOTH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "groups": {"default": [], "description": "Array of portal-initiator group associations for this target.", "items": [{"additionalProperties": false, "properties": {"portal": {"description": "ID of the iSCSI portal to use for this target group.", "title": "portal", "type": "integer", "_name_": "portal", "_required_": true}, "initiator": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authorized initiator group or `null` to allow any initiator.", "title": "initiator", "_name_": "initiator", "_required_": false}, "authmethod": {"default": "NONE", "description": "Authentication method for this target group.", "enum": ["NONE", "CHAP", "CHAP_MUTUAL"], "title": "authmethod", "type": "string", "_name_": "authmethod", "_required_": false}, "auth": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the authentication credential REDACTED, "title": "auth", "_name_": "auth", "_required_": false}}, "required": ["portal"], "title": "IscsiGroup", "type": "object", "_attrs_order_": ["portal", "initiator", "authmethod", "auth"]}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "auth_networks": {"default": [], "description": "Array of network addresses allowed to access this target.", "items": [{"type": "string"}], "title": "auth_networks", "type": "array", "_name_": "auth_networks", "_required_": false}, "rel_tgt_id": {"description": "Relative target ID number assigned by the system.", "title": "rel_tgt_id", "type": "integer", "_name_": "rel_tgt_id", "_required_": true}, "iscsi_parameters": {"anyOf": [{"additionalProperties": false, "properties": {"QueuedCommands": {"anyOf": [{"enum": [32, 128], "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queued commands per iSCSI session.\n\n* `32`: Standard queue depth for most use cases\n* `128`: Higher queue depth for performance-critical applications", "title": "QueuedCommands", "_name_": "QueuedCommands", "_required_": false}}, "title": "IscsiTargetParameters", "type": "object", "_attrs_order_": ["QueuedCommands"]}, {"type": "null"}], "default": null, "description": "Optional iSCSI-specific parameters for this target.", "title": "iscsi_parameters", "_name_": "iscsi_parameters", "_required_": false}}, "required": ["id", "name", "rel_tgt_id"], "title": "result", "type": "object", "description": "The updated iSCSI target configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "alias", "mode", "groups", "auth_networks", "rel_tgt_id", "iscsi_parameters"]}]}, "iscsi.target.validate_name": {"description": "Returns validation error for iSCSI target name\n:param name: name to be validated\n:param existing_id: id of an existing iSCSI target that will receive this name (or `None` if a new target\n is being created)\n:return: error message (or `None` if there is no error)", "cli_description": "Returns validation error for iSCSI target name :param name: name to be validated :param existing_id: id of an existing iSCSI target that will receive this name (or `None` if a new target is being created) :return: error message (or `None` if there is no error)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGET_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "Target name to validate.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of existing target to exclude from validation or `null` for new targets.", "title": "existing_id", "_name_": "existing_id", "_required_": false}], "returns": [{"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if name is invalid or `null` if name is valid.", "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.targetextent.create": {"description": "Create an Associated Target.\n\n`lunid` will be automatically assigned if it is not provided based on the `target`.", "cli_description": "Create an Associated Target", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGETEXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": true}, "lunid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "LUN ID to assign or `null` to auto-assign the next available LUN.", "title": "lunid", "_name_": "lunid", "_required_": false}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": true}}, "required": ["target", "extent"], "title": "iscsi_target_to_extent_create", "type": "object", "description": "Target-to-extent association configuration data for creation.", "_name_": "iscsi_target_to_extent_create", "_required_": true, "_attrs_order_": ["target", "lunid", "extent"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the target-to-extent association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": true}, "lunid": {"description": "Logical Unit Number (LUN) ID for presenting the extent to the target.", "title": "lunid", "type": "integer", "_name_": "lunid", "_required_": true}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": true}}, "required": ["id", "target", "lunid", "extent"], "title": "result", "type": "object", "description": "The created target-to-extent association.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "target", "lunid", "extent"]}]}, "iscsi.targetextent.delete": {"description": "Delete Associated Target of `id`.", "cli_description": "Delete Associated Target of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGETEXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the target-to-extent association to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to force deletion even if the association is in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}], "returns": [{"const": true, "description": "Returns `true` when the target-to-extent association is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "iscsi.targetextent.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGETEXTENT_READ", "SHARING_ISCSI_TARGETEXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the target-to-extent association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": true}, "lunid": {"description": "Logical Unit Number (LUN) ID for presenting the extent to the target.", "title": "lunid", "type": "integer", "_name_": "lunid", "_required_": true}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": true}}, "required": ["id", "target", "lunid", "extent"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "target", "lunid", "extent"]}]}, "iscsi.targetextent.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_ISCSI_READ", "SHARING_ISCSI_TARGETEXTENT_READ", "SHARING_ISCSI_TARGETEXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the target-to-extent association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": false}, "lunid": {"description": "Logical Unit Number (LUN) ID for presenting the extent to the target.", "title": "lunid", "type": "integer", "_name_": "lunid", "_required_": false}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": false}}, "title": "IscsiTargetToExtentQueryResultItem", "type": "object", "_attrs_order_": ["id", "target", "lunid", "extent"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the target-to-extent association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": false}, "lunid": {"description": "Logical Unit Number (LUN) ID for presenting the extent to the target.", "title": "lunid", "type": "integer", "_name_": "lunid", "_required_": false}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": false}}, "title": "IscsiTargetToExtentQueryResultItem", "type": "object", "_attrs_order_": ["id", "target", "lunid", "extent"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "iscsi.targetextent.update": {"description": "Update Associated Target of `id`.", "cli_description": "Update Associated Target of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_ISCSI_TARGETEXTENT_WRITE", "SHARING_ISCSI_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the target-to-extent association to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the target-to-extent association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": false}, "lunid": {"description": "Logical Unit Number (LUN) ID for presenting the extent to the target.", "title": "lunid", "type": "integer", "_name_": "lunid", "_required_": false}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": false}}, "title": "iscsi_target_to_extent_update", "type": "object", "description": "Updated target-to-extent association configuration data.", "_name_": "iscsi_target_to_extent_update", "_required_": true, "_attrs_order_": ["id", "target", "lunid", "extent"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the target-to-extent association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "target": {"description": "ID of the iSCSI target to associate with the extent.", "title": "target", "type": "integer", "_name_": "target", "_required_": true}, "lunid": {"description": "Logical Unit Number (LUN) ID for presenting the extent to the target.", "title": "lunid", "type": "integer", "_name_": "lunid", "_required_": true}, "extent": {"description": "ID of the iSCSI extent to associate with the target.", "title": "extent", "type": "integer", "_name_": "extent", "_required_": true}}, "required": ["id", "target", "lunid", "extent"], "title": "result", "type": "object", "description": "The updated target-to-extent association.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "target", "lunid", "extent"]}]}, "jbof.create": {"description": "Create a new JBOF.\n\nThis will use the supplied Redfish credential REDACTED, "cli_description": "Create a new JBOF", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": true}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": true}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": true}}, "required": ["mgmt_ip1", "mgmt_username", "mgmt_password REDACTED, "title": "data", "type": "object", "description": "JBOF configuration data for creation.", "_name_": "data", "_required_": true, "_attrs_order_": ["description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the JBOF configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": true}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": true}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": true}, "index": {"description": "Index of the JBOF. Used to determine data plane IP addresses.", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "uuid": {"description": "UUID of the JBOF as reported by the enclosure firmware.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}}, "required": ["id", "mgmt_ip1", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"], "title": "result", "type": "object", "description": "The created JBOF configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"]}]}, "jbof.delete": {"description": "Delete a JBOF by ID.", "cli_description": "Delete a JBOF by ID", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_WRITE"], "accepts": [{"description": "ID of the JBOF to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to force deletion even if the JBOF is in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}], "returns": [{"const": true, "description": "Returns `true` when the JBOF is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "jbof.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_READ", "JBOF_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the JBOF configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": true}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": true}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": true}, "index": {"description": "Index of the JBOF. Used to determine data plane IP addresses.", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "uuid": {"description": "UUID of the JBOF as reported by the enclosure firmware.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}}, "required": ["id", "mgmt_ip1", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"]}]}, "jbof.licensed": {"description": "Return a count of the number of JBOF units licensed.", "cli_description": "Return a count of the number of JBOF units licensed", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_READ", "JBOF_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Number of JBOF units licensed.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "jbof.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_READ", "JBOF_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the JBOF configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": false}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": false}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": false}, "index": {"description": "Index of the JBOF. Used to determine data plane IP addresses.", "title": "index", "type": "integer", "_name_": "index", "_required_": false}, "uuid": {"description": "UUID of the JBOF as reported by the enclosure firmware.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": false}}, "title": "JBOFQueryResultItem", "type": "object", "_attrs_order_": ["id", "description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the JBOF configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": false}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": false}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": false}, "index": {"description": "Index of the JBOF. Used to determine data plane IP addresses.", "title": "index", "type": "integer", "_name_": "index", "_required_": false}, "uuid": {"description": "UUID of the JBOF as reported by the enclosure firmware.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": false}}, "title": "JBOFQueryResultItem", "type": "object", "_attrs_order_": ["id", "description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "jbof.reapply_config": {"description": "Reapply the JBOF configuration to attached JBOFs.\n\nIf an IOM is replaced in a JBOF, then it is expected to be configured to have\nthe same redfish IP, user & password REDACTED, and then attach NVMe drives.", "cli_description": "Reapply the JBOF configuration to attached JBOFs", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` when the JBOF configuration is successfully reapplied.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "jbof.update": {"description": "Update JBOF of `id`", "cli_description": "Update JBOF of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["JBOF_WRITE"], "accepts": [{"description": "ID of the JBOF to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": false}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": false}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": false}}, "title": "data", "type": "object", "description": "Updated JBOF configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the JBOF configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "description": {"description": "Optional description of the JBOF.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "mgmt_ip1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IP of first Redfish management interface.", "title": "mgmt_ip1", "_name_": "mgmt_ip1", "_required_": true}, "mgmt_ip2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Optional IP of second Redfish management interface.", "title": "mgmt_ip2", "_name_": "mgmt_ip2", "_required_": false}, "mgmt_username": {"description": "Redfish administrative username.", "title": "mgmt_username", "type": "string", "_name_": "mgmt_username", "_required_": true}, "mgmt_password REDACTED, "title": "mgmt_password REDACTED, "type": "string", "_name_": "mgmt_password REDACTED, "_required_": true}, "index": {"description": "Index of the JBOF. Used to determine data plane IP addresses.", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "uuid": {"description": "UUID of the JBOF as reported by the enclosure firmware.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}}, "required": ["id", "mgmt_ip1", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"], "title": "result", "type": "object", "description": "The updated JBOF configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "description", "mgmt_ip1", "mgmt_ip2", "mgmt_username", "mgmt_password REDACTED, "index", "uuid"]}]}, "kerberos.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "appdefaults_aux": {"description": "Advanced field for manually setting additional parameters inside the appdefaults section of the krb5.conf file. These are generally not required as the required krb5.conf settings are automatically detected and set for the environment. See manpage for MIT krb5.conf.", "title": "appdefaults_aux", "type": "string", "_name_": "appdefaults_aux", "_required_": true}, "libdefaults_aux": {"description": "Advanced field for manually setting additional parameters inside the libdefaults section of the krb5.conf file. These are generally not required as the required krb5.conf settings are automatically detected and set for the environment. See manpage for MIT krb5.conf.", "title": "libdefaults_aux", "type": "string", "_name_": "libdefaults_aux", "_required_": true}}, "required": ["id", "appdefaults_aux", "libdefaults_aux"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "appdefaults_aux", "libdefaults_aux"]}]}, "kerberos.update": {"description": "`appdefaults_aux` add parameters to \"appdefaults\" section of the krb5.conf file.\n\n`libdefaults_aux` add parameters to \"libdefaults\" section of the krb5.conf file.", "cli_description": "`appdefaults_aux` add parameters to \"appdefaults\" section of the krb5", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"appdefaults_aux": {"description": "Advanced field for manually setting additional parameters inside the appdefaults section of the krb5.conf file. These are generally not required as the required krb5.conf settings are automatically detected and set for the environment. See manpage for MIT krb5.conf.", "title": "appdefaults_aux", "type": "string", "_name_": "appdefaults_aux", "_required_": false}, "libdefaults_aux": {"description": "Advanced field for manually setting additional parameters inside the libdefaults section of the krb5.conf file. These are generally not required as the required krb5.conf settings are automatically detected and set for the environment. See manpage for MIT krb5.conf.", "title": "libdefaults_aux", "type": "string", "_name_": "libdefaults_aux", "_required_": false}}, "title": "kerberos_update", "type": "object", "description": "KerberosUpdateArgs parameters.", "_name_": "kerberos_update", "_required_": true, "_attrs_order_": ["appdefaults_aux", "libdefaults_aux"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "appdefaults_aux": {"description": "Advanced field for manually setting additional parameters inside the appdefaults section of the krb5.conf file. These are generally not required as the required krb5.conf settings are automatically detected and set for the environment. See manpage for MIT krb5.conf.", "title": "appdefaults_aux", "type": "string", "_name_": "appdefaults_aux", "_required_": true}, "libdefaults_aux": {"description": "Advanced field for manually setting additional parameters inside the libdefaults section of the krb5.conf file. These are generally not required as the required krb5.conf settings are automatically detected and set for the environment. See manpage for MIT krb5.conf.", "title": "libdefaults_aux", "type": "string", "_name_": "libdefaults_aux", "_required_": true}}, "required": ["id", "appdefaults_aux", "libdefaults_aux"], "title": "result", "type": "object", "description": "The updated Kerberos configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "appdefaults_aux", "libdefaults_aux"]}]}, "kerberos.keytab.create": {"description": "Create a kerberos keytab. Uploaded keytab files will be merged with the system\nkeytab under /etc/krb5.keytab.\n\n`file` b64encoded kerberos keytab\n`name` name for kerberos keytab", "cli_description": "Create a kerberos keytab", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": true}}, "required": ["name", "file"], "title": "data", "type": "object", "description": "Kerberos keytab configuration data for creation.", "_name_": "data", "_required_": true, "_attrs_order_": ["name", "file"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos keytab entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": true}}, "required": ["id", "name", "file"], "title": "result", "type": "object", "description": "The created Kerberos keytab entry.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "file"]}]}, "kerberos.keytab.delete": {"description": "Delete kerberos keytab by id, and force regeneration of\nsystem keytab.", "cli_description": "Delete kerberos keytab by id, and force regeneration of system keytab", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"description": "ID of the Kerberos keytab entry to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` when the Kerberos keytab entry is successfully deleted.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "kerberos.keytab.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos keytab entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": true}}, "required": ["id", "name", "file"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "file"]}]}, "kerberos.keytab.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos keytab entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": false}}, "title": "KerberosKeytabQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "file"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos keytab entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": false}}, "title": "KerberosKeytabQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "file"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "kerberos.keytab.update": {"description": "Update kerberos keytab by id.", "cli_description": "Update kerberos keytab by id", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"description": "ID of the Kerberos keytab entry to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": false}}, "title": "data", "type": "object", "description": "Updated Kerberos keytab configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["name", "file"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos keytab entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the kerberos keytab entry. This is an identifier for the keytab and not the name of the keytab file. Some names are used for internal purposes such as AD_MACHINE_ACCOUNT and IPA_MACHINE_ACCOUNT.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "file": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Base64 encoded kerberos keytab entries to append to the system keytab. ", "title": "file", "_name_": "file", "_required_": true}}, "required": ["id", "name", "file"], "title": "result", "type": "object", "description": "The updated Kerberos keytab entry.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "file"]}]}, "kerberos.realm.create": {"description": "Create a new kerberos realm. This will be automatically populated during the\ndomain join process in an Active Directory environment. Kerberos realm names\nare case-sensitive, but convention is to only use upper-case.\n\nEntries for kdc, admin_server, and kpasswd_server are not required.\nIf they are unpopulated, then kerberos will use DNS srv records to\ndiscover the correct servers. The option to hard-code them is provided\ndue to AD site discovery. Kerberos has no concept of Active Directory\nsites. This means that middleware performs the site discovery and\nsets the kerberos configuration based on the AD site.", "cli_description": "Create a new kerberos realm", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": true}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"default": [], "description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"default": [], "description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"default": [], "description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "required": ["realm"], "title": "data", "type": "object", "description": "Kerberos realm configuration data for creation.", "_name_": "data", "_required_": true, "_attrs_order_": ["realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos realm configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": true}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"default": [], "description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"default": [], "description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"default": [], "description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "required": ["id", "realm"], "title": "result", "type": "object", "description": "The created Kerberos realm configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}]}, "kerberos.realm.delete": {"description": "Delete a kerberos realm by ID.", "cli_description": "Delete a kerberos realm by ID", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"description": "ID of the Kerberos realm to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` when the Kerberos realm is successfully deleted.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "kerberos.realm.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos realm configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": true}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"default": [], "description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"default": [], "description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"default": [], "description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "required": ["id", "realm"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}]}, "kerberos.realm.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_READ", "DIRECTORY_SERVICE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos realm configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": false}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "title": "KerberosRealmQueryResultItem", "type": "object", "_attrs_order_": ["id", "realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos realm configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": false}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "title": "KerberosRealmQueryResultItem", "type": "object", "_attrs_order_": ["id", "realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "kerberos.realm.update": {"description": "Update a kerberos realm by id. This will be automatically populated during the\ndomain join process in an Active Directory environment. Kerberos realm names\nare case-sensitive, but convention is to only use upper-case.", "cli_description": "Update a kerberos realm by id", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DIRECTORY_SERVICE_WRITE"], "accepts": [{"description": "ID of the Kerberos realm to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": false}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "title": "data", "type": "object", "description": "Updated Kerberos realm configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the Kerberos realm configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "realm": {"description": "Kerberos realm name. This is external to TrueNAS and is case-sensitive. The general convention for kerberos realms is that they are upper-case.", "minLength": 1, "title": "realm", "type": "string", "_name_": "realm", "_required_": true}, "primary_kdc": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The master Kerberos domain controller for this realm. TrueNAS uses this as a fallback if it cannot get credential REDACTED, "title": "primary_kdc", "_name_": "primary_kdc", "_required_": false}, "kdc": {"default": [], "description": "List of kerberos domain controllers. If the list is empty then the kerberos libraries will use DNS to look up KDCs. In some situations this is undesirable as kerberos libraries are, for intance, not active directory site aware and so may be suboptimal.", "items": [{"minLength": 1, "type": "string"}], "title": "kdc", "type": "array", "_name_": "kdc", "_required_": false}, "admin_server": {"default": [], "description": "List of kerberos admin servers. If the list is empty then the kerberos libraries will use DNS to look them up.", "items": [{"minLength": 1, "type": "string"}], "title": "admin_server", "type": "array", "_name_": "admin_server", "_required_": false}, "kpasswd_server": {"default": [], "description": "List of kerberos kpasswd servers. If the list is empty then DNS will be used to look them up if needed.", "items": [{"minLength": 1, "type": "string"}], "title": "kpasswd_server", "type": "array", "_name_": "kpasswd_server", "_required_": false}}, "required": ["id", "realm"], "title": "result", "type": "object", "description": "The updated Kerberos realm configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "realm", "primary_kdc", "kdc", "admin_server", "kpasswd_server"]}]}, "keychaincredential REDACTED, "cli_description": "Create a Keychain Credential REDACTED, "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"keychaincredential REDACTED,\n \"params\": [{\n \"name\": \"Work SSH connection\",\n \"type\": \"SSH_CREDENTIAL REDACTED,\n \"attributes\": {\n \"host\": \"work.freenas.org\",\n \"private_key\": 12,\n \"remote_host_key\": \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMn1VjdSMatGnxbOsrneKyai+dh6d4Hm\"\n }\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [{"anyOf": [{"additionalProperties": false, "properties": {"name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_KEY_PAIR", "description": "Keychain credential REDACTED, "enum": ["SSH_KEY_PAIR"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "description": "SSH key pair attributes including public and private keys.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "attributes", "type": "object", "_name_": "attributes", "_required_": true, "_attrs_order_": ["private_key", "public_key"]}}, "required": ["name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["name", "type", "attributes"]}, {"additionalProperties": false, "properties": {"name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_CREDENTIAL REDACTED, "description": "Keychain credential REDACTED, "enum": ["SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "attributes", "type": "object", "description": "SSH connection attributes including host, authentication, and connection settings.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}}, "required": ["name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["name", "type", "attributes"]}], "description": "Credential REDACTED, "title": "keychain_credential REDACTED, "_name_": "keychain_credential REDACTED, "_required_": true}], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_KEY_PAIR", "description": "Keychain credential REDACTED, "enum": ["SSH_KEY_PAIR"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "description": "SSH key pair attributes including public and private keys.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "attributes", "type": "object", "_name_": "attributes", "_required_": true, "_attrs_order_": ["private_key", "public_key"]}}, "required": ["id", "name", "type", "attributes"], "title": "SSHKeyPairEntry", "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_CREDENTIAL REDACTED, "description": "Keychain credential REDACTED, "enum": ["SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "attributes", "type": "object", "description": "SSH connection attributes including host, authentication, and connection settings.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}}, "required": ["id", "name", "type", "attributes"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}], "description": "The newly created keychain credential REDACTED, "title": "result", "_name_": "result", "_required_": true}]}, "keychaincredential REDACTED, "cli_description": "Delete Keychain Credential REDACTED, "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"keychaincredential REDACTED,\n \"params\": [\n 13\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [{"description": "Unique identifier of the keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"cascade": {"default": false, "description": "Whether to force deletion even if the credential REDACTED, "title": "cascade", "type": "boolean", "_name_": "cascade", "_required_": false}}, "title": "options", "type": "object", "default": {"cascade": false}, "description": "Options controlling the deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["cascade"]}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "keychaincredential REDACTED, "cli_description": "Generate a public/private key pair (useful for `SSH_KEY_PAIR` type)", "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"keychaincredential REDACTED,\n \"params\": []\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"private_key": {"description": "Generated SSH private key in PEM format.", "title": "private_key", "type": "string", "_name_": "private_key", "_required_": true}, "public_key": {"description": "Generated SSH public key in OpenSSH format.", "title": "public_key", "type": "string", "_name_": "public_key", "_required_": true}}, "required": ["private_key", "public_key"], "title": "result", "type": "object", "description": "KeychainCredential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["private_key", "public_key"]}]}, "keychaincredential REDACTED, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "KEYCHAIN_CREDENTIAL REDACTED, "READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "attributes"]}]}, "keychaincredential REDACTED, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "KEYCHAIN_CREDENTIAL REDACTED, "READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": false}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": false}}, "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": false}, "attributes": {"anyOf": [{}, {}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": false}}, "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "keychaincredential REDACTED, "cli_description": "Discover a remote host key (useful for `SSH_CREDENTIAL REDACTED, "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"keychaincredential REDACTED,\n \"params\": [{\n \"host\": \"work.freenas.org\"\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"host": {"description": "Hostname or IP address of the remote SSH server to scan.", "minLength": 1, "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "TCP port number for the SSH connection.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host"], "title": "keychain_remote_ssh_host_key_scan", "type": "object", "description": "KeychainCredential REDACTED, "_name_": "keychain_remote_ssh_host_key_scan", "_required_": true, "_attrs_order_": ["host", "port", "connect_timeout"]}], "returns": [{"description": "SSH host public key retrieved from the remote server.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "keychaincredential REDACTED, "cli_description": "Perform semi-automatic SSH connection setup with other TrueNAS machine", "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"keychaincredential REDACTED,\n \"params\": [{\n \"name\": \"Work SSH connection\",\n \"url\": \"https://work.freenas.org\",\n \"token REDACTED,\n \"private_key\": 12\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name for the SSH connection credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "url": {"description": "URL of the remote TrueNAS system for semi-automatic setup.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "verify_ssl": {"default": true, "description": "Whether to verify SSL certificates when connecting to the remote system.", "title": "verify_ssl", "type": "boolean", "_name_": "verify_ssl", "_required_": false}, "token REDACTED}, {"type": "null"}], "default": null, "description": "API token REDACTED, "title": "token REDACTED, "_name_": "token REDACTED, "_required_": false}, "admin_username": {"default": "root", "description": "Administrative username for the remote system.", "title": "admin_username", "type": "string", "_name_": "admin_username", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "otp_token REDACTED}, {"type": "null"}], "default": null, "description": "One-time password REDACTED, "title": "otp_token REDACTED, "_name_": "otp_token REDACTED, "_required_": false}, "username": {"default": "root", "description": "Username for the SSH connection.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "ID of the existing private key credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "SSH connection timeout in seconds.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}, "sudo": {"default": false, "description": "Whether the SSH user should use sudo for elevated privileges.", "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}}, "required": ["name", "url", "private_key"], "title": "data", "type": "object", "description": "Configuration data for semi-automatic SSH credential REDACTED, "_name_": "data", "_required_": true, "_attrs_order_": ["name", "url", "verify_ssl", "token REDACTED, "admin_username", "password REDACTED, "otp_token REDACTED, "username", "private_key", "connect_timeout", "sudo"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_CREDENTIAL REDACTED, "description": "Keychain credential REDACTED, "enum": ["SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "attributes", "type": "object", "description": "SSH connection attributes including host, authentication, and connection settings.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}}, "required": ["id", "name", "type", "attributes"], "title": "result", "type": "object", "description": "The created SSH credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "attributes"]}]}, "keychaincredential REDACTED, it will be ensured that SSH Key Pair generated (if applicable) in the process is\nremoved.", "cli_description": "Creates an SSH Connection performing the following steps:", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [{"description": "SSH connection setup configuration (manual or semi-automatic).", "discriminator": {"mapping": {"MANUAL": "#/$defs/SetupSSHConnectionManual", "SEMI-AUTOMATIC": "#/$defs/SetupSSHConnectionSemiautomatic"}, "propertyName": "setup_type"}, "oneOf": [{"additionalProperties": false, "properties": {"private_key": {"description": "SSH private key configuration (new or existing).", "discriminator": {"mapping": {"False": "#/$defs/KeychainCredential REDACTED, "True": "#/$defs/KeychainCredential REDACTED}, "propertyName": "generate_key"}, "oneOf": [{"additionalProperties": false, "properties": {"generate_key": {"const": true, "default": true, "description": "Indicates a new SSH key pair should be generated.", "enum": [true], "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "name": {"description": "Name for the new SSH key credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["name"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["generate_key", "name"]}, {"additionalProperties": false, "properties": {"generate_key": {"const": false, "default": false, "description": "Indicates an existing SSH key should be used.", "enum": [false], "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "existing_key_id": {"description": "ID of the existing SSH private key credential REDACTED, "title": "existing_key_id", "type": "integer", "_name_": "existing_key_id", "_required_": true}}, "required": ["existing_key_id"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["generate_key", "existing_key_id"]}], "title": "private_key", "_name_": "private_key", "_required_": true}, "connection_name": {"description": "Name for the SSH connection credential REDACTED, "minLength": 1, "title": "connection_name", "type": "string", "_name_": "connection_name", "_required_": true}, "setup_type": {"const": "MANUAL", "default": "MANUAL", "description": "Setup method for the SSH connection.", "enum": ["MANUAL"], "title": "setup_type", "type": "string", "_name_": "setup_type", "_required_": false}, "manual_setup": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "remote_host_key"], "title": "manual_setup", "type": "object", "description": "Manual SSH connection configuration parameters.", "_name_": "manual_setup", "_required_": true, "_attrs_order_": ["host", "port", "username", "remote_host_key", "connect_timeout"]}}, "required": ["private_key", "connection_name", "manual_setup"], "title": "SetupSSHConnectionManual", "type": "object", "_attrs_order_": ["private_key", "connection_name", "setup_type", "manual_setup"]}, {"additionalProperties": false, "properties": {"private_key": {"description": "SSH private key configuration (new or existing).", "discriminator": {"mapping": {"False": "#/$defs/KeychainCredential REDACTED, "True": "#/$defs/KeychainCredential REDACTED}, "propertyName": "generate_key"}, "oneOf": [{"additionalProperties": false, "properties": {"generate_key": {"const": true, "default": true, "description": "Indicates a new SSH key pair should be generated.", "enum": [true], "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "name": {"description": "Name for the new SSH key credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["name"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["generate_key", "name"]}, {"additionalProperties": false, "properties": {"generate_key": {"const": false, "default": false, "description": "Indicates an existing SSH key should be used.", "enum": [false], "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "existing_key_id": {"description": "ID of the existing SSH private key credential REDACTED, "title": "existing_key_id", "type": "integer", "_name_": "existing_key_id", "_required_": true}}, "required": ["existing_key_id"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["generate_key", "existing_key_id"]}], "title": "private_key", "_name_": "private_key", "_required_": true}, "connection_name": {"description": "Name for the SSH connection credential REDACTED, "minLength": 1, "title": "connection_name", "type": "string", "_name_": "connection_name", "_required_": true}, "setup_type": {"const": "SEMI-AUTOMATIC", "default": "SEMI-AUTOMATIC", "description": "Setup method for the SSH connection.", "enum": ["SEMI-AUTOMATIC"], "title": "setup_type", "type": "string", "_name_": "setup_type", "_required_": false}, "semi_automatic_setup": {"additionalProperties": false, "properties": {"url": {"description": "URL of the remote TrueNAS system for semi-automatic setup.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "url", "type": "string", "_name_": "url", "_required_": true}, "verify_ssl": {"default": true, "description": "Whether to verify SSL certificates when connecting to the remote system.", "title": "verify_ssl", "type": "boolean", "_name_": "verify_ssl", "_required_": false}, "token REDACTED}, {"type": "null"}], "default": null, "description": "API token REDACTED, "title": "token REDACTED, "_name_": "token REDACTED, "_required_": false}, "admin_username": {"default": "root", "description": "Administrative username for the remote system.", "title": "admin_username", "type": "string", "_name_": "admin_username", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "otp_token REDACTED}, {"type": "null"}], "default": null, "description": "One-time password REDACTED, "title": "otp_token REDACTED, "_name_": "otp_token REDACTED, "_required_": false}, "username": {"default": "root", "description": "Username for the SSH connection.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "connect_timeout": {"default": 10, "description": "SSH connection timeout in seconds.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}, "sudo": {"default": false, "description": "Whether the SSH user should use sudo for elevated privileges.", "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}}, "required": ["url"], "title": "semi_automatic_setup", "type": "object", "description": "Semi-automatic SSH connection configuration parameters.", "_name_": "semi_automatic_setup", "_required_": true, "_attrs_order_": ["url", "verify_ssl", "token REDACTED, "admin_username", "password REDACTED, "otp_token REDACTED, "username", "connect_timeout", "sudo"]}}, "required": ["private_key", "connection_name", "semi_automatic_setup"], "title": "SetupSSHConnectionSemiautomatic", "type": "object", "_attrs_order_": ["private_key", "connection_name", "setup_type", "semi_automatic_setup"]}], "title": "options", "_name_": "options", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_CREDENTIAL REDACTED, "description": "Keychain credential REDACTED, "enum": ["SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "attributes", "type": "object", "description": "SSH connection attributes including host, authentication, and connection settings.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}}, "required": ["id", "name", "type", "attributes"], "title": "result", "type": "object", "description": "The created SSH connection credential REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "attributes"]}]}, "keychaincredential REDACTED, "cli_description": "Update a Keychain Credential REDACTED, "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"keychaincredential REDACTED,\n \"params\": [\n 13,\n {\n \"name\": \"Work SSH connection\",\n \"attributes\": {\n \"host\": \"work.ixsystems.com\",\n \"private_key\": 12,\n \"remote_host_key\": \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMn1VjdSMatGnxbOsrneKyai+dh6d4Hm\"\n }\n }\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "REPLICATION_ADMIN"], "accepts": [{"description": "Unique identifier of the keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"anyOf": [{"additionalProperties": false, "properties": {"name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "attributes": {"additionalProperties": false, "description": "SSH key pair attributes including public and private keys.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "attributes", "type": "object", "_name_": "attributes", "_required_": false, "_attrs_order_": ["private_key", "public_key"]}}, "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["name", "attributes"]}, {"additionalProperties": false, "properties": {"name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "attributes": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "attributes", "type": "object", "description": "SSH connection attributes including host, authentication, and connection settings.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}}, "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["name", "attributes"]}], "description": "Updated credential REDACTED, "title": "keychain_credential REDACTED, "_name_": "keychain_credential REDACTED, "_required_": true}], "returns": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_KEY_PAIR", "description": "Keychain credential REDACTED, "enum": ["SSH_KEY_PAIR"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "description": "SSH key pair attributes including public and private keys.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "attributes", "type": "object", "_name_": "attributes", "_required_": true, "_attrs_order_": ["private_key", "public_key"]}}, "required": ["id", "name", "type", "attributes"], "title": "SSHKeyPairEntry", "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SSH_CREDENTIAL REDACTED, "description": "Keychain credential REDACTED, "enum": ["SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "attributes", "type": "object", "description": "SSH connection attributes including host, authentication, and connection settings.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}}, "required": ["id", "name", "type", "attributes"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}], "description": "The updated keychain credential REDACTED, "title": "result", "_name_": "result", "_required_": true}]}, "keychaincredential REDACTED, "cli_description": "Returns list of objects that use this credential REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KEYCHAIN_CREDENTIAL REDACTED, "KEYCHAIN_CREDENTIAL REDACTED, "READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Unique identifier of the keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of services or features using this keychain credential REDACTED, "items": [{"additionalProperties": false, "properties": {"title": {"description": "Human-readable description of where the credential REDACTED, "title": "title", "type": "string", "_name_": "title", "_required_": true}, "unbind_method": {"description": "How to remove the credential REDACTED, "enum": ["delete", "disable"], "title": "unbind_method", "type": "string", "_name_": "unbind_method", "_required_": true}}, "required": ["title", "unbind_method"], "title": "UsedKeychainCredential REDACTED, "type": "object", "_attrs_order_": ["title", "unbind_method"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "kmip.clear_sync_pending_keys": {"description": "Clear all keys which are pending to be synced between KMIP server and TN database.\n\nFor ZFS/SED keys, we remove the UID from local database with which we are able to retrieve ZFS/SED keys.\nIt should be used with caution.", "cli_description": "Clear all keys which are pending to be synced between KMIP server and TN database", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KMIP_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` when pending sync keys are successfully cleared.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "kmip.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KMIP_READ", "KMIP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the KMIP configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether KMIP (Key Management Interoperability Protocol) is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "manage_sed_disks": {"description": "Whether to use KMIP for managing SED (Self-Encrypting Drive) keys.", "title": "manage_sed_disks", "type": "boolean", "_name_": "manage_sed_disks", "_required_": true}, "manage_zfs_keys": {"description": "Whether to use KMIP for managing ZFS encryption keys.", "title": "manage_zfs_keys", "type": "boolean", "_name_": "manage_zfs_keys", "_required_": true}, "certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the client certificate for KMIP authentication or `null`.", "title": "certificate", "_name_": "certificate", "_required_": true}, "certificate_authority": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the certificate authority for server verification or `null`.", "title": "certificate_authority", "_name_": "certificate_authority", "_required_": true}, "port": {"description": "TCP port number for the KMIP server connection.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "server": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Hostname or IP address of the KMIP server or `null` if not configured.", "title": "server", "_name_": "server", "_required_": true}, "ssl_version": {"description": "SSL/TLS protocol version to use for KMIP connections.", "enum": ["PROTOCOL_TLSv1", "PROTOCOL_TLSv1_1", "PROTOCOL_TLSv1_2"], "title": "ssl_version", "type": "string", "_name_": "ssl_version", "_required_": true}}, "required": ["id", "enabled", "manage_sed_disks", "manage_zfs_keys", "certificate", "certificate_authority", "port", "server", "ssl_version"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "manage_sed_disks", "manage_zfs_keys", "certificate", "certificate_authority", "port", "server", "ssl_version"]}]}, "kmip.kmip_sync_pending": {"description": "Returns true or false based on if there are keys which are to be synced from local database to remote KMIP\nserver or vice versa.", "cli_description": "Returns true or false based on if there are keys which are to be synced from local database to remote KMIP server or vice versa", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KMIP_READ", "KMIP_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Returns `true` if there are keys pending synchronization with the KMIP server.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "kmip.sync_keys": {"description": "Sync ZFS/SED keys between KMIP Server and TN database.", "cli_description": "Sync ZFS/SED keys between KMIP Server and TN database", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["KMIP_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` when key synchronization with the KMIP server completes.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "kmip.update": {"description": "Update KMIP Server Configuration.\n\nSystem currently authenticates connection with remote KMIP Server with a TLS handshake. `certificate` and\n`certificate_authority` determine the certs which will be used to initiate the TLS handshake with `server`.\n\n`validate` is enabled by default. When enabled, system will test connection to `server` making sure\nit's reachable.\n\n`manage_zfs_keys`/`manage_sed_disks` when enabled will sync keys from local database to remote KMIP server.\nWhen disabled, if there are any keys left to be retrieved from the KMIP server,\nit will sync them back to local database.\n\n`enabled` if true, cannot be set to disabled if there are existing keys pending to be synced. However users\ncan still perform this action by enabling `force_clear`.\n\n`ssl_version` can be specified to match the ssl configuration being used by KMIP server.\n\n`change_server` is a boolean field which allows users to migrate data between two KMIP servers. System\nwill first migrate keys from old KMIP server to local database and then migrate the keys from local database\nto new KMIP server. If it is unable to retrieve all the keys from old server, this will fail. Users can bypass\nthis by enabling `force_clear`.\n\n`force_clear` is a boolean option which when enabled will in this case remove all\npending keys to be synced from database. It should be used with extreme caution as users may end up with\nnot having ZFS dataset or SED disks keys leaving them locked forever. It is disabled by default.", "cli_description": "Update KMIP Server Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["KMIP_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether to enable KMIP functionality.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "manage_sed_disks": {"description": "Whether to use KMIP for managing SED (Self-Encrypting Drive) keys.", "title": "manage_sed_disks", "type": "boolean", "_name_": "manage_sed_disks", "_required_": false}, "manage_zfs_keys": {"description": "Whether to use KMIP for managing ZFS encryption keys.", "title": "manage_zfs_keys", "type": "boolean", "_name_": "manage_zfs_keys", "_required_": false}, "certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the client certificate for KMIP authentication or `null`.", "title": "certificate", "_name_": "certificate", "_required_": false}, "certificate_authority": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the certificate authority for server verification or `null`.", "title": "certificate_authority", "_name_": "certificate_authority", "_required_": false}, "port": {"description": "TCP port number for the KMIP server connection.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "server": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Hostname or IP address of the KMIP server or `null` if not configured.", "title": "server", "_name_": "server", "_required_": false}, "ssl_version": {"description": "SSL/TLS protocol version to use for KMIP connections.", "enum": ["PROTOCOL_TLSv1", "PROTOCOL_TLSv1_1", "PROTOCOL_TLSv1_2"], "title": "ssl_version", "type": "string", "_name_": "ssl_version", "_required_": false}, "force_clear": {"description": "Whether to force clear existing keys when disabling KMIP.", "title": "force_clear", "type": "boolean", "_name_": "force_clear", "_required_": false}, "change_server": {"description": "Whether the KMIP server configuration is being changed.", "title": "change_server", "type": "boolean", "_name_": "change_server", "_required_": false}, "validate": {"description": "Whether to validate the KMIP server connection before saving.", "title": "validate", "type": "boolean", "_name_": "validate", "_required_": false}}, "title": "kmip_update", "type": "object", "description": "KMIPUpdateArgs parameters.", "_name_": "kmip_update", "_required_": true, "_attrs_order_": ["enabled", "manage_sed_disks", "manage_zfs_keys", "certificate", "certificate_authority", "port", "server", "ssl_version", "force_clear", "change_server", "validate"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the KMIP configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether KMIP (Key Management Interoperability Protocol) is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "manage_sed_disks": {"description": "Whether to use KMIP for managing SED (Self-Encrypting Drive) keys.", "title": "manage_sed_disks", "type": "boolean", "_name_": "manage_sed_disks", "_required_": true}, "manage_zfs_keys": {"description": "Whether to use KMIP for managing ZFS encryption keys.", "title": "manage_zfs_keys", "type": "boolean", "_name_": "manage_zfs_keys", "_required_": true}, "certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the client certificate for KMIP authentication or `null`.", "title": "certificate", "_name_": "certificate", "_required_": true}, "certificate_authority": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the certificate authority for server verification or `null`.", "title": "certificate_authority", "_name_": "certificate_authority", "_required_": true}, "port": {"description": "TCP port number for the KMIP server connection.", "maximum": 65535, "minimum": 1, "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "server": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Hostname or IP address of the KMIP server or `null` if not configured.", "title": "server", "_name_": "server", "_required_": true}, "ssl_version": {"description": "SSL/TLS protocol version to use for KMIP connections.", "enum": ["PROTOCOL_TLSv1", "PROTOCOL_TLSv1_1", "PROTOCOL_TLSv1_2"], "title": "ssl_version", "type": "string", "_name_": "ssl_version", "_required_": true}}, "required": ["id", "enabled", "manage_sed_disks", "manage_zfs_keys", "certificate", "certificate_authority", "port", "server", "ssl_version"], "title": "result", "type": "object", "description": "The updated KMIP configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "manage_sed_disks", "manage_zfs_keys", "certificate", "certificate_authority", "port", "server", "ssl_version"]}]}, "mail.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"fromemail": {"description": "The sending address that the mail server will use for sending emails.", "title": "fromemail", "type": "string", "_name_": "fromemail", "_required_": true}, "fromname": {"description": "Display name that will appear as the sender name in outgoing emails.", "title": "fromname", "type": "string", "_name_": "fromname", "_required_": true}, "outgoingserver": {"description": "Hostname or IP address of the SMTP server used for sending emails.", "title": "outgoingserver", "type": "string", "_name_": "outgoingserver", "_required_": true}, "port": {"description": "TCP port number for the SMTP server connection.", "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "security": {"description": "Type of encryption.", "enum": ["PLAIN", "SSL", "TLS"], "title": "security", "type": "string", "_name_": "security", "_required_": true}, "smtp": {"description": "Whether SMTP authentication is enabled and `user`, `pass` are required.", "title": "smtp", "type": "boolean", "_name_": "smtp", "_required_": true}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP username.", "title": "user", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": true}, "oauth": {"anyOf": [{"additionalProperties": false, "properties": {"provider": {"description": "An email provider, e.g. \"gmail\", \"outlook\".", "title": "provider", "type": "string", "_name_": "provider", "_required_": true}, "client_id": {"description": "OAuth client ID provided by the email provider.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": true}, "client_secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": true}, "refresh_token REDACTED, "title": "refresh_token REDACTED, "type": "string", "_name_": "refresh_token REDACTED, "_required_": true}}, "required": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED, "title": "MailEntryOAuth", "type": "object", "_attrs_order_": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED}, {"additionalProperties": false, "properties": {}, "title": "EmptyDict", "type": "object", "_attrs_order_": []}, {"type": "null"}], "description": "OAuth configuration for email providers that support it or `null` for basic authentication.", "title": "oauth", "_name_": "oauth", "_required_": true}, "id": {"description": "Unique identifier for this mail configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["fromemail", "fromname", "outgoingserver", "port", "security", "smtp", "user", "pass", "oauth", "id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["fromemail", "fromname", "outgoingserver", "port", "security", "smtp", "user", "pass", "oauth", "id"]}]}, "mail.local_administrator_email": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_READ", "ALERT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Email address of the local administrator or `null` if not configured.", "title": "result", "_name_": "result", "_required_": true}]}, "mail.send": {"description": "Sends mail using configured mail settings.", "cli_description": "Sends mail using configured mail settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": false, "roles": ["MAIL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"subject": {"description": "Subject line for the email message.", "title": "subject", "type": "string", "_name_": "subject", "_required_": true}, "text": {"description": "Formatted to HTML using Markdown and rendered using default email template.", "title": "text", "type": "string", "_name_": "text", "_required_": false}, "html": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Custom HTML (overrides `text`). If null, no HTML MIME part will be added to the email.", "title": "html", "_name_": "html", "_required_": false}, "to": {"description": "Email recipients. Defaults to all local administrators.", "items": [{"type": "string"}], "title": "to", "type": "array", "_name_": "to", "_required_": false}, "cc": {"description": "Email CC recipients, if any.", "items": [{"type": "string"}], "title": "cc", "type": "array", "_name_": "cc", "_required_": false}, "interval": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "In seconds.", "title": "interval", "_name_": "interval", "_required_": false}, "channel": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Defaults to \"truenas\".", "title": "channel", "_name_": "channel", "_required_": false}, "timeout": {"default": 300, "description": "Time limit for connecting to the SMTP server in seconds.", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "attachments": {"default": false, "description": "If set to true, an array compromised of the following object is required via HTTP upload:\n\n* headers *(array)*\n * name *(string)*\n * value *(string)*\n * params *(object)*\n\n* content *(string)*\n\nExample:\n[\n {\n \"headers\": [\n {\n \"name\": \"Content-Transfer-Encoding\",\n \"value\": \"base64\"\n },\n {\n \"name\": \"Content-Type\",\n \"value\": \"application/octet-stream\",\n \"params\": {\n \"name\": \"test.txt\"\n }\n }\n ],\n \"content\": \"dGVzdAo=\"\n }\n]", "title": "attachments", "type": "boolean", "_name_": "attachments", "_required_": false}, "queue": {"default": true, "description": "Queue the message to be sent later if it fails to send.", "title": "queue", "type": "boolean", "_name_": "queue", "_required_": false}, "extra_headers": {"description": "Any additional headers to include in the email message.", "title": "extra_headers", "type": "object", "_name_": "extra_headers", "_required_": false}}, "required": ["subject"], "title": "message", "type": "object", "description": "Email message content and configuration.", "_name_": "message", "_required_": true, "_attrs_order_": ["subject", "text", "html", "to", "cc", "interval", "channel", "timeout", "attachments", "queue", "extra_headers"]}, {"additionalProperties": false, "properties": {"fromemail": {"description": "The sending address that the mail server will use for sending emails.", "title": "fromemail", "type": "string", "_name_": "fromemail", "_required_": false}, "fromname": {"description": "Display name that will appear as the sender name in outgoing emails.", "title": "fromname", "type": "string", "_name_": "fromname", "_required_": false}, "outgoingserver": {"description": "Hostname or IP address of the SMTP server used for sending emails.", "title": "outgoingserver", "type": "string", "_name_": "outgoingserver", "_required_": false}, "port": {"description": "TCP port number for the SMTP server connection.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "security": {"description": "Type of encryption.", "enum": ["PLAIN", "SSL", "TLS"], "title": "security", "type": "string", "_name_": "security", "_required_": false}, "smtp": {"description": "Whether SMTP authentication is enabled and `user`, `pass` are required.", "title": "smtp", "type": "boolean", "_name_": "smtp", "_required_": false}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP username.", "title": "user", "_name_": "user", "_required_": false}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "oauth": {"anyOf": [{"additionalProperties": false, "properties": {"provider": {"description": "An email provider, e.g. \"gmail\", \"outlook\".", "title": "provider", "type": "string", "_name_": "provider", "_required_": true}, "client_id": {"description": "OAuth client ID provided by the email provider.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": true}, "client_secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": true}, "refresh_token REDACTED, "title": "refresh_token REDACTED, "type": "string", "_name_": "refresh_token REDACTED, "_required_": true}}, "required": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED, "title": "MailEntryOAuth", "type": "object", "_attrs_order_": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED}, {"additionalProperties": false, "properties": {}, "title": "EmptyDict", "type": "object", "_attrs_order_": []}, {"type": "null"}], "description": "OAuth configuration for email providers that support it or `null` for basic authentication.", "title": "oauth", "_name_": "oauth", "_required_": false}}, "title": "config", "type": "object", "description": "Optional mail configuration overrides for this message.", "_name_": "config", "_required_": false, "_attrs_order_": ["fromemail", "fromname", "outgoingserver", "port", "security", "smtp", "user", "pass", "oauth"]}], "returns": [{"description": "The message was sent successfully.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "mail.update": {"description": "Update Mail Service Configuration.", "cli_description": "Update Mail Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ALERT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"fromemail": {"description": "The sending address that the mail server will use for sending emails.", "title": "fromemail", "type": "string", "_name_": "fromemail", "_required_": false}, "fromname": {"description": "Display name that will appear as the sender name in outgoing emails.", "title": "fromname", "type": "string", "_name_": "fromname", "_required_": false}, "outgoingserver": {"description": "Hostname or IP address of the SMTP server used for sending emails.", "title": "outgoingserver", "type": "string", "_name_": "outgoingserver", "_required_": false}, "port": {"description": "TCP port number for the SMTP server connection.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "security": {"description": "Type of encryption.", "enum": ["PLAIN", "SSL", "TLS"], "title": "security", "type": "string", "_name_": "security", "_required_": false}, "smtp": {"description": "Whether SMTP authentication is enabled and `user`, `pass` are required.", "title": "smtp", "type": "boolean", "_name_": "smtp", "_required_": false}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP username.", "title": "user", "_name_": "user", "_required_": false}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": false}, "oauth": {"anyOf": [{"additionalProperties": false, "properties": {"provider": {"description": "An email provider, e.g. \"gmail\", \"outlook\".", "title": "provider", "type": "string", "_name_": "provider", "_required_": true}, "client_id": {"description": "OAuth client ID provided by the email provider.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": true}, "client_secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": true}, "refresh_token REDACTED, "title": "refresh_token REDACTED, "type": "string", "_name_": "refresh_token REDACTED, "_required_": true}}, "required": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED, "title": "MailEntryOAuth", "type": "object", "_attrs_order_": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED}, {"additionalProperties": false, "properties": {}, "title": "EmptyDict", "type": "object", "_attrs_order_": []}, {"type": "null"}], "description": "OAuth configuration for email providers that support it or `null` for basic authentication.", "title": "oauth", "_name_": "oauth", "_required_": false}}, "title": "data", "type": "object", "description": "Mail configuration fields to update.", "_name_": "data", "_required_": true, "_attrs_order_": ["fromemail", "fromname", "outgoingserver", "port", "security", "smtp", "user", "pass", "oauth"]}], "returns": [{"additionalProperties": false, "properties": {"fromemail": {"description": "The sending address that the mail server will use for sending emails.", "title": "fromemail", "type": "string", "_name_": "fromemail", "_required_": true}, "fromname": {"description": "Display name that will appear as the sender name in outgoing emails.", "title": "fromname", "type": "string", "_name_": "fromname", "_required_": true}, "outgoingserver": {"description": "Hostname or IP address of the SMTP server used for sending emails.", "title": "outgoingserver", "type": "string", "_name_": "outgoingserver", "_required_": true}, "port": {"description": "TCP port number for the SMTP server connection.", "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "security": {"description": "Type of encryption.", "enum": ["PLAIN", "SSL", "TLS"], "title": "security", "type": "string", "_name_": "security", "_required_": true}, "smtp": {"description": "Whether SMTP authentication is enabled and `user`, `pass` are required.", "title": "smtp", "type": "boolean", "_name_": "smtp", "_required_": true}, "user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP username.", "title": "user", "_name_": "user", "_required_": true}, "pass": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SMTP password REDACTED, "title": "pass", "_name_": "pass", "_required_": true}, "oauth": {"anyOf": [{"additionalProperties": false, "properties": {"provider": {"description": "An email provider, e.g. \"gmail\", \"outlook\".", "title": "provider", "type": "string", "_name_": "provider", "_required_": true}, "client_id": {"description": "OAuth client ID provided by the email provider.", "title": "client_id", "type": "string", "_name_": "client_id", "_required_": true}, "client_secret REDACTED, "title": "client_secret REDACTED, "type": "string", "_name_": "client_secret REDACTED, "_required_": true}, "refresh_token REDACTED, "title": "refresh_token REDACTED, "type": "string", "_name_": "refresh_token REDACTED, "_required_": true}}, "required": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED, "title": "MailEntryOAuth", "type": "object", "_attrs_order_": ["provider", "client_id", "client_secret REDACTED, "refresh_token REDACTED}, {"additionalProperties": false, "properties": {}, "title": "EmptyDict", "type": "object", "_attrs_order_": []}, {"type": "null"}], "description": "OAuth configuration for email providers that support it or `null` for basic authentication.", "title": "oauth", "_name_": "oauth", "_required_": true}, "id": {"description": "Unique identifier for this mail configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["fromemail", "fromname", "outgoingserver", "port", "security", "smtp", "user", "pass", "oauth", "id"], "title": "result", "type": "object", "description": "The resulting mail configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["fromemail", "fromname", "outgoingserver", "port", "security", "smtp", "user", "pass", "oauth", "id"]}]}, "network.configuration.activity_choices": {"description": "Returns allowed/forbidden network activity choices.", "cli_description": "Returns allowed/forbidden network activity choices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_READ", "NETWORK_GENERAL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available network activity choices for filtering.", "items": [{"items": [{"type": "string"}], "type": "array"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "network.configuration.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_READ", "NETWORK_GENERAL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the network configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostname": {"description": "System hostname.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "System domain name.", "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "ipv4gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Used instead of the default gateway provided by DHCP.", "title": "ipv4gateway", "_name_": "ipv4gateway", "_required_": true}, "ipv6gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IPv6 default gateway address.", "title": "ipv6gateway", "_name_": "ipv6gateway", "_required_": true}, "nameserver1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Primary DNS server.", "title": "nameserver1", "_name_": "nameserver1", "_required_": true}, "nameserver2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Secondary DNS server.", "title": "nameserver2", "_name_": "nameserver2", "_required_": true}, "nameserver3": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Tertiary DNS server.", "title": "nameserver3", "_name_": "nameserver3", "_required_": true}, "httpproxy": {"description": "Must be provided if a proxy is to be used for network operations.", "title": "httpproxy", "type": "string", "_name_": "httpproxy", "_required_": true}, "hosts": {"description": "Static host entries to add to the hosts file.", "items": [{"type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": true}, "domains": {"description": "Additional domain names for DNS search.", "items": [{"type": "string"}], "title": "domains", "type": "array", "_name_": "domains", "_required_": true}, "service_announcement": {"additionalProperties": false, "properties": {"netbios": {"description": "Enable the NetBIOS name server (NBNS) which starts concurrently with the SMB service. SMB clients will only perform NBNS lookups if SMB1 is enabled. NBNS may be required for legacy SMB clients.", "title": "netbios", "type": "boolean", "_name_": "netbios", "_required_": false}, "mdns": {"description": "Enable multicast DNS service announcements for enabled services.", "title": "mdns", "type": "boolean", "_name_": "mdns", "_required_": false}, "wsd": {"description": "Enable Web Service Discovery support.", "title": "wsd", "type": "boolean", "_name_": "wsd", "_required_": false}}, "title": "service_announcement", "type": "object", "description": "Determines the broadcast protocols that will be used to advertise the server.", "_name_": "service_announcement", "_required_": true, "_attrs_order_": ["netbios", "mdns", "wsd"]}, "activity": {"additionalProperties": false, "properties": {"type": {"description": "Whether to allow or deny the specified network activities.", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "activities": {"default": [], "description": "Array of network activity types to allow or deny.", "items": [{"type": "string"}], "title": "activities", "type": "array", "_name_": "activities", "_required_": false}}, "required": ["type"], "title": "activity", "type": "object", "description": "Network activity filtering configuration.", "_name_": "activity", "_required_": true, "_attrs_order_": ["type", "activities"]}, "hostname_local": {"description": "Local hostname for this system.", "title": "hostname_local", "type": "string", "_name_": "hostname_local", "_required_": true}, "hostname_b": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hostname for the second controller in HA configurations or `null`.", "title": "hostname_b", "_name_": "hostname_b", "_required_": false}, "hostname_virtual": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Virtual hostname for HA configurations or `null`.", "title": "hostname_virtual", "_name_": "hostname_virtual", "_required_": false}, "state": {"additionalProperties": false, "properties": {"ipv4gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current IPv4 default gateway address.", "title": "ipv4gateway", "_name_": "ipv4gateway", "_required_": true}, "ipv6gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current IPv6 default gateway address.", "title": "ipv6gateway", "_name_": "ipv6gateway", "_required_": true}, "nameserver1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current primary DNS server address.", "title": "nameserver1", "_name_": "nameserver1", "_required_": true}, "nameserver2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current secondary DNS server address.", "title": "nameserver2", "_name_": "nameserver2", "_required_": true}, "nameserver3": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current tertiary DNS server address.", "title": "nameserver3", "_name_": "nameserver3", "_required_": true}, "hosts": {"description": "Current hosts file entries.", "items": [{"type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": true}}, "required": ["ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "hosts"], "title": "state", "type": "object", "description": "Current network configuration state.", "_name_": "state", "_required_": true, "_attrs_order_": ["ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "hosts"]}}, "required": ["id", "hostname", "domain", "ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "httpproxy", "hosts", "domains", "service_announcement", "activity", "hostname_local", "state"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "hostname", "domain", "ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "httpproxy", "hosts", "domains", "service_announcement", "activity", "hostname_local", "hostname_b", "hostname_virtual", "state"]}]}, "network.configuration.update": {"description": "Update Network Configuration Service configuration.", "cli_description": "Update Network Configuration Service configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"hostname": {"description": "System hostname.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}, "domain": {"description": "System domain name.", "title": "domain", "type": "string", "_name_": "domain", "_required_": false}, "ipv4gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Used instead of the default gateway provided by DHCP.", "title": "ipv4gateway", "_name_": "ipv4gateway", "_required_": false}, "ipv6gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IPv6 default gateway address.", "title": "ipv6gateway", "_name_": "ipv6gateway", "_required_": false}, "nameserver1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Primary DNS server.", "title": "nameserver1", "_name_": "nameserver1", "_required_": false}, "nameserver2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Secondary DNS server.", "title": "nameserver2", "_name_": "nameserver2", "_required_": false}, "nameserver3": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Tertiary DNS server.", "title": "nameserver3", "_name_": "nameserver3", "_required_": false}, "httpproxy": {"description": "Must be provided if a proxy is to be used for network operations.", "title": "httpproxy", "type": "string", "_name_": "httpproxy", "_required_": false}, "hosts": {"description": "Static host entries to add to the hosts file.", "items": [{"type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "domains": {"description": "Additional domain names for DNS search.", "items": [{"type": "string"}], "title": "domains", "type": "array", "_name_": "domains", "_required_": false}, "service_announcement": {"additionalProperties": false, "properties": {"netbios": {"description": "Enable the NetBIOS name server (NBNS) which starts concurrently with the SMB service. SMB clients will only perform NBNS lookups if SMB1 is enabled. NBNS may be required for legacy SMB clients.", "title": "netbios", "type": "boolean", "_name_": "netbios", "_required_": false}, "mdns": {"description": "Enable multicast DNS service announcements for enabled services.", "title": "mdns", "type": "boolean", "_name_": "mdns", "_required_": false}, "wsd": {"description": "Enable Web Service Discovery support.", "title": "wsd", "type": "boolean", "_name_": "wsd", "_required_": false}}, "title": "service_announcement", "type": "object", "description": "Determines the broadcast protocols that will be used to advertise the server.", "_name_": "service_announcement", "_required_": false, "_attrs_order_": ["netbios", "mdns", "wsd"]}, "activity": {"additionalProperties": false, "properties": {"type": {"description": "Whether to allow or deny the specified network activities.", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "activities": {"default": [], "description": "Array of network activity types to allow or deny.", "items": [{"type": "string"}], "title": "activities", "type": "array", "_name_": "activities", "_required_": false}}, "required": ["type"], "title": "activity", "type": "object", "description": "Network activity filtering configuration.", "_name_": "activity", "_required_": false, "_attrs_order_": ["type", "activities"]}, "hostname_b": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hostname for the second controller in HA configurations or `null`.", "title": "hostname_b", "_name_": "hostname_b", "_required_": false}, "hostname_virtual": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Virtual hostname for HA configurations or `null`.", "title": "hostname_virtual", "_name_": "hostname_virtual", "_required_": false}}, "title": "data", "type": "object", "description": "Network configuration data to update.", "_name_": "data", "_required_": true, "_attrs_order_": ["hostname", "domain", "ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "httpproxy", "hosts", "domains", "service_announcement", "activity", "hostname_b", "hostname_virtual"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the network configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostname": {"description": "System hostname.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "domain": {"description": "System domain name.", "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "ipv4gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Used instead of the default gateway provided by DHCP.", "title": "ipv4gateway", "_name_": "ipv4gateway", "_required_": true}, "ipv6gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "IPv6 default gateway address.", "title": "ipv6gateway", "_name_": "ipv6gateway", "_required_": true}, "nameserver1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Primary DNS server.", "title": "nameserver1", "_name_": "nameserver1", "_required_": true}, "nameserver2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Secondary DNS server.", "title": "nameserver2", "_name_": "nameserver2", "_required_": true}, "nameserver3": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Tertiary DNS server.", "title": "nameserver3", "_name_": "nameserver3", "_required_": true}, "httpproxy": {"description": "Must be provided if a proxy is to be used for network operations.", "title": "httpproxy", "type": "string", "_name_": "httpproxy", "_required_": true}, "hosts": {"description": "Static host entries to add to the hosts file.", "items": [{"type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": true}, "domains": {"description": "Additional domain names for DNS search.", "items": [{"type": "string"}], "title": "domains", "type": "array", "_name_": "domains", "_required_": true}, "service_announcement": {"additionalProperties": false, "properties": {"netbios": {"description": "Enable the NetBIOS name server (NBNS) which starts concurrently with the SMB service. SMB clients will only perform NBNS lookups if SMB1 is enabled. NBNS may be required for legacy SMB clients.", "title": "netbios", "type": "boolean", "_name_": "netbios", "_required_": false}, "mdns": {"description": "Enable multicast DNS service announcements for enabled services.", "title": "mdns", "type": "boolean", "_name_": "mdns", "_required_": false}, "wsd": {"description": "Enable Web Service Discovery support.", "title": "wsd", "type": "boolean", "_name_": "wsd", "_required_": false}}, "title": "service_announcement", "type": "object", "description": "Determines the broadcast protocols that will be used to advertise the server.", "_name_": "service_announcement", "_required_": true, "_attrs_order_": ["netbios", "mdns", "wsd"]}, "activity": {"additionalProperties": false, "properties": {"type": {"description": "Whether to allow or deny the specified network activities.", "enum": ["ALLOW", "DENY"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "activities": {"default": [], "description": "Array of network activity types to allow or deny.", "items": [{"type": "string"}], "title": "activities", "type": "array", "_name_": "activities", "_required_": false}}, "required": ["type"], "title": "activity", "type": "object", "description": "Network activity filtering configuration.", "_name_": "activity", "_required_": true, "_attrs_order_": ["type", "activities"]}, "hostname_local": {"description": "Local hostname for this system.", "title": "hostname_local", "type": "string", "_name_": "hostname_local", "_required_": true}, "hostname_b": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hostname for the second controller in HA configurations or `null`.", "title": "hostname_b", "_name_": "hostname_b", "_required_": false}, "hostname_virtual": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Virtual hostname for HA configurations or `null`.", "title": "hostname_virtual", "_name_": "hostname_virtual", "_required_": false}, "state": {"additionalProperties": false, "properties": {"ipv4gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current IPv4 default gateway address.", "title": "ipv4gateway", "_name_": "ipv4gateway", "_required_": true}, "ipv6gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current IPv6 default gateway address.", "title": "ipv6gateway", "_name_": "ipv6gateway", "_required_": true}, "nameserver1": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current primary DNS server address.", "title": "nameserver1", "_name_": "nameserver1", "_required_": true}, "nameserver2": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current secondary DNS server address.", "title": "nameserver2", "_name_": "nameserver2", "_required_": true}, "nameserver3": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Current tertiary DNS server address.", "title": "nameserver3", "_name_": "nameserver3", "_required_": true}, "hosts": {"description": "Current hosts file entries.", "items": [{"type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": true}}, "required": ["ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "hosts"], "title": "state", "type": "object", "description": "Current network configuration state.", "_name_": "state", "_required_": true, "_attrs_order_": ["ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "hosts"]}}, "required": ["id", "hostname", "domain", "ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "httpproxy", "hosts", "domains", "service_announcement", "activity", "hostname_local", "state"], "title": "result", "type": "object", "description": "The updated network configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "hostname", "domain", "ipv4gateway", "ipv6gateway", "nameserver1", "nameserver2", "nameserver3", "httpproxy", "hosts", "domains", "service_announcement", "activity", "hostname_local", "hostname_b", "hostname_virtual", "state"]}]}, "network.general.summary": {"description": "Retrieve general information for current Network.\n\nReturns a dictionary. For example:\n\n", "cli_description": "Retrieve general information for current Network", "examples": {"websocket": ["\n\n :::javascript\n {\n \"ips\": {\n \"vtnet0\": {\n \"IPV4\": [\n \"192.168.0.15/24\"\n ]\n }\n },\n \"default_routes\": [\n \"192.168.0.1\"\n ],\n \"nameservers\": [\n \"192.168.0.1\"\n ]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_READ", "NETWORK_GENERAL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"ips": {"additionalProperties": {"additionalProperties": false, "properties": {"IPV4": {"description": "Array of IPv4 addresses assigned to this interface.", "items": [{"type": "string"}], "title": "IPV4", "type": "array", "_name_": "IPV4", "_required_": false}, "IPV6": {"description": "Array of IPv6 addresses assigned to this interface.", "items": [{"type": "string"}], "title": "IPV6", "type": "array", "_name_": "IPV6", "_required_": false}}, "title": "NetworkGeneralSummaryIP", "type": "object", "_attrs_order_": ["IPV4", "IPV6"]}, "description": "Object mapping interface names to their IP address information.", "title": "ips", "type": "object", "_name_": "ips", "_required_": true}, "default_routes": {"description": "Array of default gateway addresses.", "items": [{"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}]}], "title": "default_routes", "type": "array", "_name_": "default_routes", "_required_": true}, "nameservers": {"description": "Array of configured DNS server addresses.", "items": [{"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}]}], "title": "nameservers", "type": "array", "_name_": "nameservers", "_required_": true}}, "required": ["ips", "default_routes", "nameservers"], "title": "result", "type": "object", "description": "NetworkGeneralSummaryResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["ips", "default_routes", "nameservers"]}]}, "nfs.bindip_choices": {"description": "Returns ip choices for NFS service to use", "cli_description": "Returns ip choices for NFS service to use", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_READ", "SHARING_NFS_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Available IP addresses that the NFS service can bind to.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "nfs.client_count": {"description": "Return currently connected clients count.\nCount may not be accurate if NFSv3 protocol is in use\ndue to potentially stale rmtab entries.", "cli_description": "Return currently connected clients count", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_READ", "SHARING_NFS_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"description": "Current number of connected NFS clients.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "nfs.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_READ", "SHARING_NFS_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "servers": {"anyOf": [{"maximum": 256, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the number of nfsd. Default: Number of nfsd is equal number of CPU. ", "title": "servers", "_name_": "servers", "_required_": true}, "allow_nonroot": {"description": "Allow non-root mount requests. This equates to 'insecure' share option. ", "title": "allow_nonroot", "type": "boolean", "_name_": "allow_nonroot", "_required_": true}, "protocols": {"description": "Specify supported NFS protocols: NFSv3, NFSv4 or both can be listed. ", "items": [{"enum": ["NFSV3", "NFSV4"], "type": "string"}], "title": "protocols", "type": "array", "_name_": "protocols", "_required_": true}, "v4_krb": {"description": "Force Kerberos authentication on NFS shares. ", "title": "v4_krb", "type": "boolean", "_name_": "v4_krb", "_required_": true}, "v4_domain": {"description": "Specify a DNS domain (NFSv4 only). ", "title": "v4_domain", "type": "string", "_name_": "v4_domain", "_required_": true}, "bindip": {"default": [], "description": "Limit the server IP addresses available for NFS. ", "items": [{"minLength": 1, "type": "string"}], "title": "bindip", "type": "array", "_name_": "bindip", "_required_": false}, "mountd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the mountd port binding. ", "title": "mountd_port", "_name_": "mountd_port", "_required_": true}, "rpcstatd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the rpc.statd port binding. ", "title": "rpcstatd_port", "_name_": "rpcstatd_port", "_required_": true}, "rpclockd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the rpc.lockd port binding. ", "title": "rpclockd_port", "_name_": "rpclockd_port", "_required_": true}, "mountd_log": {"description": "Enable or disable mountd logging. ", "title": "mountd_log", "type": "boolean", "_name_": "mountd_log", "_required_": true}, "statd_lockd_log": {"description": "Enable or disable statd and lockd logging. ", "title": "statd_lockd_log", "type": "boolean", "_name_": "statd_lockd_log", "_required_": true}, "v4_krb_enabled": {"description": "Status of NFSv4 authentication requirement (status only). ", "title": "v4_krb_enabled", "type": "boolean", "_name_": "v4_krb_enabled", "_required_": true}, "userd_manage_gids": {"description": "Enable to allow server to manage gids. ", "title": "userd_manage_gids", "type": "boolean", "_name_": "userd_manage_gids", "_required_": true}, "keytab_has_nfs_spn": {"description": "Report status of NFS Principal Name in keytab (status only). ", "title": "keytab_has_nfs_spn", "type": "boolean", "_name_": "keytab_has_nfs_spn", "_required_": true}, "managed_nfsd": {"description": "Report status of 'servers' field.\nIf true, the number of nfsd is managed by the server (status only). ", "title": "managed_nfsd", "type": "boolean", "_name_": "managed_nfsd", "_required_": true}, "rdma": {"description": "Enable or disable NFS over RDMA. Requires RDMA capable NIC. ", "title": "rdma", "type": "boolean", "_name_": "rdma", "_required_": true}}, "required": ["id", "servers", "allow_nonroot", "protocols", "v4_krb", "v4_domain", "mountd_port", "rpcstatd_port", "rpclockd_port", "mountd_log", "statd_lockd_log", "v4_krb_enabled", "userd_manage_gids", "keytab_has_nfs_spn", "managed_nfsd", "rdma"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "servers", "allow_nonroot", "protocols", "v4_krb", "v4_domain", "bindip", "mountd_port", "rpcstatd_port", "rpclockd_port", "mountd_log", "statd_lockd_log", "v4_krb_enabled", "userd_manage_gids", "keytab_has_nfs_spn", "managed_nfsd", "rdma"]}]}, "nfs.get_nfs3_clients": {"description": "Read contents of rmtab. This information may not\nbe accurate due to stale entries. This is ultimately\na limitation of the NFSv3 protocol.", "cli_description": "Read contents of rmtab", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_WRITE", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"ip": {"description": "IP address of the NFSv3 client.", "title": "ip", "type": "string", "_name_": "ip", "_required_": false}, "export": {"description": "NFS export path being accessed by the client.", "title": "export", "type": "string", "_name_": "export", "_required_": false}}, "title": "NFSGetNfs3ClientsQueryResultItem", "type": "object", "_attrs_order_": ["ip", "export"]}], "type": "array"}, {"additionalProperties": false, "properties": {"ip": {"description": "IP address of the NFSv3 client.", "title": "ip", "type": "string", "_name_": "ip", "_required_": false}, "export": {"description": "NFS export path being accessed by the client.", "title": "export", "type": "string", "_name_": "export", "_required_": false}}, "title": "NFSGetNfs3ClientsQueryResultItem", "type": "object", "_attrs_order_": ["ip", "export"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nfs.get_nfs4_clients": {"description": "Read information about NFSv4 clients from /proc/fs/nfsd/clients\nSample output:\n[{\n \"id\": \"4\",\n \"info\": {\n \"clientid\": 6273260596088110000,\n \"address\": \"192.168.40.247:790\",\n \"status\": \"confirmed\",\n \"seconds from last renew\": 45,\n \"name\": \"Linux NFSv4.2 debian12-hv\",\n \"minor version\": 2,\n \"Implementation domain\": \"kernel.org\",\n \"Implementation name\": \"Linux 6.1.0-12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.52-1 (2023-09-07) x86_64\",\n \"Implementation time\": [0, 0],\n \"callback state\": \"UP\",\n \"callback address\": \"192.168.40.247:0\"\n },\n \"states\": [\n {\n \"94850248556250062041657638912\": {\n \"type\": \"deleg\",\n \"access\": \"r\",\n \"superblock\": \"00:39:5\",\n \"filename\": \"/debian12-hv\"\n }\n },\n {\n \"94850248556250062041741524992\": {\n \"type\": \"open\",\n \"access\": \"rw\",\n \"deny\": \"--\",\n \"superblock\": \"00:39:137\",\n \"filename\": \"/.debian12-hv.swp\",\n \"owner\": \"open id:\u0000\u0000\u00008\u0000\u0000\u0000\u0000\u0000\u0000\u0014\u00fe\u00c0\u00b23\"\n }\n }\n ]\n}]\n---- Description of the fields (all per NFS client) ----\n'clientid': Hash generated for this client connection\n'address': The client IP and port. e.g. 10.20.30.40:768\n\n'status': The current client status:\n 'confirmed' An active connection.\n The status will convert to 'courtesy' in 90 seconds if not 'confirmed' by the client.\n 'courtesy' A stalled connection from an inactive client.\n The status will convert to 'expirable' in 24hr.\n 'expirable' Waiting to be cleaned up.\n\n'seconds from last renew': The session timeout counter. See 'status' field.\n Gets reset by confirmation update from the client\n\n'name': Supplied by the client.\n Linux clients might offer something like 'Linux NFS4.2 clnt_name'.\n FreeBSD clients might supply a UUID like name\n\n'minor version': The NFS4.x minor version. E.G. '2' for NFSv4.2\n\n'Implementation domain': NFSv4.1 info - e.g. 'kernel.org' or 'freebsd.org'.\n'Implementation name': NFSv4.1 info - e.g. equivalent to 'uname -a' on the client\n'Implementation time': NFSv4.1 info - Timestamp (time nfstime4) of client version (maybe unused?)\n\n'callback state': Current callback 'service' status for this client: 'UP', 'DOWN', 'FAULT' or 'UNKNOWN'\n Linux clients usually indicate 'UP'\n FreeBSD clients may indicate 'DOWN' but are still functional", "cli_description": "Read information about NFSv4 clients from /proc/fs/nfsd/clients Sample output: [{ \"id\": \"4\", \"info\": { \"clientid\": 6273260596088110000, \"address\": \"192", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_WRITE", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFSv4 client.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "info": {"description": "Client information including connection details and capabilities.", "title": "info", "type": "object", "_name_": "info", "_required_": false}, "states": {"description": "Array of client state information including open files and locks.", "items": [{"type": "object"}], "title": "states", "type": "array", "_name_": "states", "_required_": false}}, "title": "NFSGetNfs4ClientsQueryResultItem", "type": "object", "_attrs_order_": ["id", "info", "states"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFSv4 client.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "info": {"description": "Client information including connection details and capabilities.", "title": "info", "type": "object", "_name_": "info", "_required_": false}, "states": {"description": "Array of client state information including open files and locks.", "items": [{"type": "object"}], "title": "states", "type": "array", "_name_": "states", "_required_": false}}, "title": "NFSGetNfs4ClientsQueryResultItem", "type": "object", "_attrs_order_": ["id", "info", "states"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nfs.update": {"description": "Update NFS Service Configuration.\n\n`servers` - Represents number of servers to create.\n By default, the number of nfsd is determined by the capabilities of the system.\n To specify the number of nfsd, set a value between 1 and 256.\n 'Unset' the field to return to default.\n This field will always report the number of nfsd to start.\n\n INPUT: 1 .. 256 or 'unset'\n where unset will enable the automatic determination\n and 1 ..256 will set the number of nfsd\n Default: Number of nfsd is automatically determined and will be no less\n than 1 and no more than 32\n\n The number of mountd will be 1/4 the number of reported nfsd.\n\n`allow_nonroot` - If 'enabled' it allows non-root mount requests to be served.\n\n INPUT: enable/disable (True/False)\n Default: disabled\n\n`bindip` - Limit the server IP addresses available for NFS\n By default, NFS will listen on all IP addresses that are active on the server.\n To specify the server interface or a set of interfaces provide a list of IP's.\n If the field is unset/empty, NFS listens on all available server addresses.\n\n INPUT: list of IP addresses available configured on the server\n Default: Use all available addresses (empty list)\n\n`protocols` - enable/disable NFSv3, NFSv4\n Both can be enabled or NFSv4 or NFSv4 by themselves. At least one must be enabled.\n Note: The 'showmount' command is available only if NFSv3 is enabled.\n\n INPUT: Select NFSv3 or NFSv4 or NFSv3,NFSv4\n Default: NFSv3,NFSv4\n\n`v4_krb` - Force Kerberos authentication on NFS shares\n If enabled, NFS shares will fail if the Kerberos ticket is unavilable\n\n INPUT: enable/disable\n Default: disabled\n\n`v4_domain` - Specify a DNS domain (NFSv4 only)\n If set, the value will be used to override the default DNS domain name for NFSv4.\n Specifies the 'Domain' idmapd.conf setting.\n\n INPUT: a string\n Default: unset, i.e. an empty string.\n\n`mountd_port` - mountd port binding\n The value set specifies the port mountd(8) binds to.\n\n INPUT: unset or an integer between 1 .. 65535\n Default: unset\n\n`rpcstatd_port` - statd port binding\n The value set specifies the port rpc.statd(8) binds to.\n\n INPUT: unset or an integer between 1 .. 65535\n Default: unset\n\n`rpclockd_port` - lockd port binding\n The value set specifies the port rpclockd_port(8) binds to.\n\n INPUT: unset or an integer between 1 .. 65535\n Default: unset\n\n`rdma` - Enable/Disable NFS over RDMA support\n Available on supported platforms and requires an installed and RDMA capable NIC.\n NFS over RDMA uses port 20040.\n\n INPUT: Enable/Disable\n Default: Disable", "cli_description": "Update NFS Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NFS_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"servers": {"anyOf": [{"maximum": 256, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the number of nfsd. Default: Number of nfsd is equal number of CPU. ", "title": "servers", "_name_": "servers", "_required_": false}, "allow_nonroot": {"description": "Allow non-root mount requests. This equates to 'insecure' share option. ", "title": "allow_nonroot", "type": "boolean", "_name_": "allow_nonroot", "_required_": false}, "protocols": {"description": "Specify supported NFS protocols: NFSv3, NFSv4 or both can be listed. ", "items": [{"enum": ["NFSV3", "NFSV4"], "type": "string"}], "title": "protocols", "type": "array", "_name_": "protocols", "_required_": false}, "v4_krb": {"description": "Force Kerberos authentication on NFS shares. ", "title": "v4_krb", "type": "boolean", "_name_": "v4_krb", "_required_": false}, "v4_domain": {"description": "Specify a DNS domain (NFSv4 only). ", "title": "v4_domain", "type": "string", "_name_": "v4_domain", "_required_": false}, "bindip": {"description": "Limit the server IP addresses available for NFS. ", "items": [{"minLength": 1, "type": "string"}], "title": "bindip", "type": "array", "_name_": "bindip", "_required_": false}, "mountd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the mountd port binding. ", "title": "mountd_port", "_name_": "mountd_port", "_required_": false}, "rpcstatd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the rpc.statd port binding. ", "title": "rpcstatd_port", "_name_": "rpcstatd_port", "_required_": false}, "rpclockd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the rpc.lockd port binding. ", "title": "rpclockd_port", "_name_": "rpclockd_port", "_required_": false}, "mountd_log": {"description": "Enable or disable mountd logging. ", "title": "mountd_log", "type": "boolean", "_name_": "mountd_log", "_required_": false}, "statd_lockd_log": {"description": "Enable or disable statd and lockd logging. ", "title": "statd_lockd_log", "type": "boolean", "_name_": "statd_lockd_log", "_required_": false}, "userd_manage_gids": {"description": "Enable to allow server to manage gids. ", "title": "userd_manage_gids", "type": "boolean", "_name_": "userd_manage_gids", "_required_": false}, "rdma": {"description": "Enable or disable NFS over RDMA. Requires RDMA capable NIC. ", "title": "rdma", "type": "boolean", "_name_": "rdma", "_required_": false}}, "title": "nfs_update", "type": "object", "description": "NFSUpdateArgs parameters.", "_name_": "nfs_update", "_required_": true, "_attrs_order_": ["servers", "allow_nonroot", "protocols", "v4_krb", "v4_domain", "bindip", "mountd_port", "rpcstatd_port", "rpclockd_port", "mountd_log", "statd_lockd_log", "userd_manage_gids", "rdma"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "servers": {"anyOf": [{"maximum": 256, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the number of nfsd. Default: Number of nfsd is equal number of CPU. ", "title": "servers", "_name_": "servers", "_required_": true}, "allow_nonroot": {"description": "Allow non-root mount requests. This equates to 'insecure' share option. ", "title": "allow_nonroot", "type": "boolean", "_name_": "allow_nonroot", "_required_": true}, "protocols": {"description": "Specify supported NFS protocols: NFSv3, NFSv4 or both can be listed. ", "items": [{"enum": ["NFSV3", "NFSV4"], "type": "string"}], "title": "protocols", "type": "array", "_name_": "protocols", "_required_": true}, "v4_krb": {"description": "Force Kerberos authentication on NFS shares. ", "title": "v4_krb", "type": "boolean", "_name_": "v4_krb", "_required_": true}, "v4_domain": {"description": "Specify a DNS domain (NFSv4 only). ", "title": "v4_domain", "type": "string", "_name_": "v4_domain", "_required_": true}, "bindip": {"default": [], "description": "Limit the server IP addresses available for NFS. ", "items": [{"minLength": 1, "type": "string"}], "title": "bindip", "type": "array", "_name_": "bindip", "_required_": false}, "mountd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the mountd port binding. ", "title": "mountd_port", "_name_": "mountd_port", "_required_": true}, "rpcstatd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the rpc.statd port binding. ", "title": "rpcstatd_port", "_name_": "rpcstatd_port", "_required_": true}, "rpclockd_port": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Specify the rpc.lockd port binding. ", "title": "rpclockd_port", "_name_": "rpclockd_port", "_required_": true}, "mountd_log": {"description": "Enable or disable mountd logging. ", "title": "mountd_log", "type": "boolean", "_name_": "mountd_log", "_required_": true}, "statd_lockd_log": {"description": "Enable or disable statd and lockd logging. ", "title": "statd_lockd_log", "type": "boolean", "_name_": "statd_lockd_log", "_required_": true}, "v4_krb_enabled": {"description": "Status of NFSv4 authentication requirement (status only). ", "title": "v4_krb_enabled", "type": "boolean", "_name_": "v4_krb_enabled", "_required_": true}, "userd_manage_gids": {"description": "Enable to allow server to manage gids. ", "title": "userd_manage_gids", "type": "boolean", "_name_": "userd_manage_gids", "_required_": true}, "keytab_has_nfs_spn": {"description": "Report status of NFS Principal Name in keytab (status only). ", "title": "keytab_has_nfs_spn", "type": "boolean", "_name_": "keytab_has_nfs_spn", "_required_": true}, "managed_nfsd": {"description": "Report status of 'servers' field.\nIf true, the number of nfsd is managed by the server (status only). ", "title": "managed_nfsd", "type": "boolean", "_name_": "managed_nfsd", "_required_": true}, "rdma": {"description": "Enable or disable NFS over RDMA. Requires RDMA capable NIC. ", "title": "rdma", "type": "boolean", "_name_": "rdma", "_required_": true}}, "required": ["id", "servers", "allow_nonroot", "protocols", "v4_krb", "v4_domain", "mountd_port", "rpcstatd_port", "rpclockd_port", "mountd_log", "statd_lockd_log", "v4_krb_enabled", "userd_manage_gids", "keytab_has_nfs_spn", "managed_nfsd", "rdma"], "title": "result", "type": "object", "description": "The updated NFS service configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "servers", "allow_nonroot", "protocols", "v4_krb", "v4_domain", "bindip", "mountd_port", "rpcstatd_port", "rpclockd_port", "mountd_log", "statd_lockd_log", "v4_krb_enabled", "userd_manage_gids", "keytab_has_nfs_spn", "managed_nfsd", "rdma"]}]}, "nvmet.global.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF global configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "basenqn": {"description": "NQN to be used as the prefix on the creation of a subsystem, if a subnqn is not supplied to `nvmet.subsys.create`.\n\nModifying this value will *not* change the subnqn of any existing subsystems.", "title": "basenqn", "type": "string", "_name_": "basenqn", "_required_": true}, "kernel": {"description": "Select the NVMe-oF backend.", "title": "kernel", "type": "boolean", "_name_": "kernel", "_required_": true}, "ana": {"description": "Asymmetric Namespace Access (ANA) enabled.", "title": "ana", "type": "boolean", "_name_": "ana", "_required_": true}, "rdma": {"description": "RDMA is enabled for NVMe-oF.\n\nEnabling is limited to TrueNAS Enterprise-licensed systems and requires the system and network environment have Remote Direct Memory Access (RDMA)-capable hardware.\n\nOnce enabled one or more `ports` may be configured with RDMA selected as the transport. See `nvmet.port.create`.", "title": "rdma", "type": "boolean", "_name_": "rdma", "_required_": true}, "xport_referral": {"description": "Controls whether cross-port referrals will be generated for ports on this TrueNAS.\n\nIf ANA is active then referrals will always be generated between the peer ports on each TrueNAS controller node.", "title": "xport_referral", "type": "boolean", "_name_": "xport_referral", "_required_": true}}, "required": ["id", "basenqn", "kernel", "ana", "rdma", "xport_referral"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "basenqn", "kernel", "ana", "rdma", "xport_referral"]}]}, "nvmet.global.sessions": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"host_traddr": {"description": "Address of the connected host. For example an IP address.", "title": "host_traddr", "type": "string", "_name_": "host_traddr", "_required_": false}, "hostnqn": {"description": "NQN of the connected host. ", "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": false}, "subsys_id": {"description": "`id` of the subsystem on this TrueNAS that the host is connected to. ", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": false}, "port_id": {"description": "`id` of the port on this TrueNAS through which the host is connected. ", "title": "port_id", "type": "integer", "_name_": "port_id", "_required_": false}, "ctrl": {"description": "NVMe controller number. ", "title": "ctrl", "type": "integer", "_name_": "ctrl", "_required_": false}}, "title": "NVMetGlobalSessionsItemQueryResultItem", "type": "object", "_attrs_order_": ["host_traddr", "hostnqn", "subsys_id", "port_id", "ctrl"]}], "type": "array"}, {"additionalProperties": false, "properties": {"host_traddr": {"description": "Address of the connected host. For example an IP address.", "title": "host_traddr", "type": "string", "_name_": "host_traddr", "_required_": false}, "hostnqn": {"description": "NQN of the connected host. ", "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": false}, "subsys_id": {"description": "`id` of the subsystem on this TrueNAS that the host is connected to. ", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": false}, "port_id": {"description": "`id` of the port on this TrueNAS through which the host is connected. ", "title": "port_id", "type": "integer", "_name_": "port_id", "_required_": false}, "ctrl": {"description": "NVMe controller number. ", "title": "ctrl", "type": "integer", "_name_": "ctrl", "_required_": false}}, "title": "NVMetGlobalSessionsItemQueryResultItem", "type": "object", "_attrs_order_": ["host_traddr", "hostnqn", "subsys_id", "port_id", "ctrl"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.global.update": {"description": "Update NVMe target global config.", "cli_description": "Update NVMe target global config", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"basenqn": {"description": "NQN to be used as the prefix on the creation of a subsystem, if a subnqn is not supplied to `nvmet.subsys.create`.\n\nModifying this value will *not* change the subnqn of any existing subsystems.", "maxLength": 223, "minLength": 11, "title": "basenqn", "type": "string", "_name_": "basenqn", "_required_": false}, "kernel": {"description": "Select the NVMe-oF backend.", "title": "kernel", "type": "boolean", "_name_": "kernel", "_required_": false}, "ana": {"description": "Asymmetric Namespace Access (ANA) enabled.", "title": "ana", "type": "boolean", "_name_": "ana", "_required_": false}, "rdma": {"description": "RDMA is enabled for NVMe-oF.\n\nEnabling is limited to TrueNAS Enterprise-licensed systems and requires the system and network environment have Remote Direct Memory Access (RDMA)-capable hardware.\n\nOnce enabled one or more `ports` may be configured with RDMA selected as the transport. See `nvmet.port.create`.", "title": "rdma", "type": "boolean", "_name_": "rdma", "_required_": false}, "xport_referral": {"description": "Controls whether cross-port referrals will be generated for ports on this TrueNAS.\n\nIf ANA is active then referrals will always be generated between the peer ports on each TrueNAS controller node.", "title": "xport_referral", "type": "boolean", "_name_": "xport_referral", "_required_": false}}, "title": "nvmet_update", "type": "object", "description": "NVMetGlobalUpdateArgs parameters.", "_name_": "nvmet_update", "_required_": true, "_attrs_order_": ["basenqn", "kernel", "ana", "rdma", "xport_referral"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF global configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "basenqn": {"description": "NQN to be used as the prefix on the creation of a subsystem, if a subnqn is not supplied to `nvmet.subsys.create`.\n\nModifying this value will *not* change the subnqn of any existing subsystems.", "title": "basenqn", "type": "string", "_name_": "basenqn", "_required_": true}, "kernel": {"description": "Select the NVMe-oF backend.", "title": "kernel", "type": "boolean", "_name_": "kernel", "_required_": true}, "ana": {"description": "Asymmetric Namespace Access (ANA) enabled.", "title": "ana", "type": "boolean", "_name_": "ana", "_required_": true}, "rdma": {"description": "RDMA is enabled for NVMe-oF.\n\nEnabling is limited to TrueNAS Enterprise-licensed systems and requires the system and network environment have Remote Direct Memory Access (RDMA)-capable hardware.\n\nOnce enabled one or more `ports` may be configured with RDMA selected as the transport. See `nvmet.port.create`.", "title": "rdma", "type": "boolean", "_name_": "rdma", "_required_": true}, "xport_referral": {"description": "Controls whether cross-port referrals will be generated for ports on this TrueNAS.\n\nIf ANA is active then referrals will always be generated between the peer ports on each TrueNAS controller node.", "title": "xport_referral", "type": "boolean", "_name_": "xport_referral", "_required_": true}}, "required": ["id", "basenqn", "kernel", "ana", "rdma", "xport_referral"], "title": "result", "type": "object", "description": "The updated NVMe-oF global configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "basenqn", "kernel", "ana", "rdma", "xport_referral"]}]}, "nvmet.host.create": {"description": "Create an NVMe target `host`.\n\nThis may be then be associated with one or more `subsystems` to control access.", "cli_description": "Create an NVMe target `host`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"hostnqn": {"maxLength": 223, "minLength": 11, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["hostnqn"], "title": "nvmet_host_create", "type": "object", "description": "NVMe-oF host configuration data for creation.", "_name_": "nvmet_host_create", "_required_": true, "_attrs_order_": ["hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "result", "type": "object", "description": "The created NVMe-oF host configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}]}, "nvmet.host.delete": {"description": "Delete NVMe target `host` of `id`.", "cli_description": "Delete NVMe target `host` of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NVMe-oF host to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "Force host deletion, even if currently associated with one or more subsystems. ", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "options", "type": "object", "description": "Options controlling host deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["force"]}], "returns": [{"const": true, "description": "Returns `true` when the NVMe-oF host is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "nvmet.host.dhchap_dhgroup_choices": {"description": "Returns possible choices for `dhchap_dhgroup` attribute of `host` create and update.\nNone is an additional choice.", "cli_description": "Returns possible choices for `dhchap_dhgroup` attribute of `host` create and update", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"description": "Array of available DH-CHAP Diffie-Hellman group options.", "items": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "nvmet.host.dhchap_hash_choices": {"description": "Returns possible choices for `dhchap_hash` attribute of `host` create and update.", "cli_description": "Returns possible choices for `dhchap_hash` attribute of `host` create and update", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [], "returns": [{"description": "Array of available DH-CHAP hash algorithm options.", "items": [{"enum": ["SHA-256", "SHA-384", "SHA-512"], "type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "nvmet.host.generate_key": {"description": "Generate a secret REDACTED, "cli_description": "Generate a secret REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"default": "SHA-256", "description": "Hash to be used with the generated key. ", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}, {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "NQN to be used for the transformation. ", "title": "nqn", "_name_": "nqn", "_required_": false}], "returns": [{"description": "Generated DH-CHAP key for NVMe-oF authentication.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "nvmet.host.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}]}, "nvmet.host.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": false}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "title": "NVMetHostQueryResultItem", "type": "object", "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": false}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "title": "NVMetHostQueryResultItem", "type": "object", "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.host.update": {"description": "Update NVMe target `host` of `id`.", "cli_description": "Update NVMe target `host` of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NVMe-oF host to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "maxLength": 223, "minLength": 11, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": false}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "title": "nvmet_host_update", "type": "object", "description": "Updated NVMe-oF host configuration data.", "_name_": "nvmet_host_update", "_required_": true, "_attrs_order_": ["hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "result", "type": "object", "description": "The updated NVMe-oF host configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}]}, "nvmet.host_subsys.create": {"description": "Create an association between a `host` and a subsystem (`subsys`).\n\nThis will enable the `host` to access the subsystem, even if the\nsubsystem does not have the `allow_any_host` attribute set.", "cli_description": "Create an association between a `host` and a subsystem (`subsys`)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"host_id": {"description": "ID of the NVMe-oF host to authorize.", "title": "host_id", "type": "integer", "_name_": "host_id", "_required_": true}, "subsys_id": {"description": "ID of the NVMe-oF subsystem to grant access to.", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": true}}, "required": ["host_id", "subsys_id"], "title": "nvmet_host_subsys_create", "type": "object", "description": "Host-subsystem association configuration data for creation.", "_name_": "nvmet_host_subsys_create", "_required_": true, "_attrs_order_": ["host_id", "subsys_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the host-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "host": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "host", "type": "object", "description": "NVMe-oF host that is authorized to access the subsystem.", "_name_": "host", "_required_": true, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that the host is authorized to access.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "required": ["id", "host", "subsys"], "title": "result", "type": "object", "description": "The created host-subsystem association.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "host", "subsys"]}]}, "nvmet.host_subsys.delete": {"description": "Delete `host`/`subsys` association of `id`.\n\nIf the subsystem does not have the `allow_any_host` attribute set,\nthen this will remove access of the host to the subsystem.", "cli_description": "Delete `host`/`subsys` association of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the host-subsystem association to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the host-subsystem association is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "nvmet.host_subsys.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the host-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "host": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "host", "type": "object", "description": "NVMe-oF host that is authorized to access the subsystem.", "_name_": "host", "_required_": true, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that the host is authorized to access.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "required": ["id", "host", "subsys"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "host", "subsys"]}]}, "nvmet.host_subsys.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the host-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "host": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "host", "type": "object", "description": "NVMe-oF host that is authorized to access the subsystem.", "_name_": "host", "_required_": false, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that the host is authorized to access.", "_name_": "subsys", "_required_": false, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "title": "NVMetHostSubsysQueryResultItem", "type": "object", "_attrs_order_": ["id", "host", "subsys"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the host-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "host": {"description": "NVMe-oF host that is authorized to access the subsystem.", "title": "host", "_name_": "host", "_required_": false}, "subsys": {"description": "NVMe-oF subsystem that the host is authorized to access.", "title": "subsys", "_name_": "subsys", "_required_": false}}, "title": "NVMetHostSubsysQueryResultItem", "type": "object", "_attrs_order_": ["id", "host", "subsys"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.host_subsys.update": {"description": "Update `host`/`subsys` association of `id`.", "cli_description": "Update `host`/`subsys` association of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the host-subsystem association to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"host_id": {"description": "ID of the NVMe-oF host to authorize.", "title": "host_id", "type": "integer", "_name_": "host_id", "_required_": false}, "subsys_id": {"description": "ID of the NVMe-oF subsystem to grant access to.", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": false}}, "title": "nvmet_host_subsys_update", "type": "object", "description": "Updated host-subsystem association configuration data.", "_name_": "nvmet_host_subsys_update", "_required_": true, "_attrs_order_": ["host_id", "subsys_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the host-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "host": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF host.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "hostnqn": {"description": "NQN of the host that will connect to this TrueNAS. ", "minLength": 1, "title": "hostnqn", "type": "string", "_name_": "hostnqn", "_required_": true}, "dhchap_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_key", "_name_": "dhchap_key", "_required_": false}, "dhchap_ctrl_key": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If set, the secret REDACTED, or by using the `nvmet.host.generate_key` API.", "title": "dhchap_ctrl_key", "_name_": "dhchap_ctrl_key", "_required_": false}, "dhchap_dhgroup": {"anyOf": [{"enum": ["2048-BIT", "3072-BIT", "4096-BIT", "6144-BIT", "8192-BIT"], "type": "string"}, {"type": "null"}], "default": null, "description": "If selected, the DH (Diffie-Hellman) key exchange built on top of CHAP to be used for authentication.", "title": "dhchap_dhgroup", "_name_": "dhchap_dhgroup", "_required_": false}, "dhchap_hash": {"default": "SHA-256", "description": "HMAC (Hashed Message Authentication Code) to be used in conjunction if a `dhchap_dhgroup` is selected.", "enum": ["SHA-256", "SHA-384", "SHA-512"], "title": "dhchap_hash", "type": "string", "_name_": "dhchap_hash", "_required_": false}}, "required": ["id", "hostnqn"], "title": "host", "type": "object", "description": "NVMe-oF host that is authorized to access the subsystem.", "_name_": "host", "_required_": true, "_attrs_order_": ["id", "hostnqn", "dhchap_key", "dhchap_ctrl_key", "dhchap_dhgroup", "dhchap_hash"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that the host is authorized to access.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "required": ["id", "host", "subsys"], "title": "result", "type": "object", "description": "The updated host-subsystem association.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "host", "subsys"]}]}, "nvmet.namespace.create": {"description": "Create a NVMe target namespace in a subsystem (`subsys`).\n\nThis will expose the namespace to any hosts permitted to access the subsystem.", "cli_description": "Create a NVMe target namespace in a subsystem (`subsys`)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": true}, "device_path": {"description": "Normalized path to the device or file for the namespace.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": true}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "enabled": {"default": true, "description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "subsys_id": {"description": "ID of the NVMe-oF subsystem to contain this namespace.", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": true}}, "required": ["device_type", "device_path", "subsys_id"], "title": "nvmet_namespace_create", "type": "object", "description": "NVMe-oF namespace configuration data for creation.", "_name_": "nvmet_namespace_create", "_required_": true, "_attrs_order_": ["nsid", "device_type", "device_path", "filesize", "enabled", "subsys_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF namespace.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that contains this namespace.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": true}, "device_path": {"description": "Path to the device or file being used to implement the namespace.\n\nWhen `device_type` is:\n\n* \"ZVOL\": `device_path` is e.g. \"zvol/poolname/zvolname\"\n* \"FILE\": `device_path` is e.g. \"/mnt/poolmnt/path/to/file\". The file will be created if necessary.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": true}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "device_uuid": {"description": "Unique device identifier for the namespace.", "minLength": 1, "title": "device_uuid", "type": "string", "_name_": "device_uuid", "_required_": true}, "device_nguid": {"description": "Namespace Globally Unique Identifier for the namespace.", "minLength": 1, "title": "device_nguid", "type": "string", "_name_": "device_nguid", "_required_": true}, "enabled": {"default": true, "description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Reflect the locked state of the namespace.\n\nThe underlying `device_path` could be an encrypted ZVOL, or a file on an encrypted dataset. In either case `locked` will be `True` if the underlying entity is locked.", "title": "locked", "_name_": "locked", "_required_": true}}, "required": ["id", "subsys", "device_type", "device_path", "device_uuid", "device_nguid", "locked"], "title": "result", "type": "object", "description": "The created NVMe-oF namespace configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "nsid", "subsys", "device_type", "device_path", "filesize", "device_uuid", "device_nguid", "enabled", "locked"]}]}, "nvmet.namespace.delete": {"description": "Delete NVMe target namespace of `id`.", "cli_description": "Delete NVMe target namespace of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NVMe-oF namespace to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"remove": {"default": false, "description": "Remove file underlying namespace if `device_type` is FILE.", "title": "remove", "type": "boolean", "_name_": "remove", "_required_": false}}, "title": "options", "type": "object", "description": "Options controlling namespace deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["remove"]}], "returns": [{"const": true, "description": "Returns `true` when the NVMe-oF namespace is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "nvmet.namespace.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF namespace.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that contains this namespace.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": true}, "device_path": {"description": "Path to the device or file being used to implement the namespace.\n\nWhen `device_type` is:\n\n* \"ZVOL\": `device_path` is e.g. \"zvol/poolname/zvolname\"\n* \"FILE\": `device_path` is e.g. \"/mnt/poolmnt/path/to/file\". The file will be created if necessary.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": true}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "device_uuid": {"description": "Unique device identifier for the namespace.", "minLength": 1, "title": "device_uuid", "type": "string", "_name_": "device_uuid", "_required_": true}, "device_nguid": {"description": "Namespace Globally Unique Identifier for the namespace.", "minLength": 1, "title": "device_nguid", "type": "string", "_name_": "device_nguid", "_required_": true}, "enabled": {"default": true, "description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Reflect the locked state of the namespace.\n\nThe underlying `device_path` could be an encrypted ZVOL, or a file on an encrypted dataset. In either case `locked` will be `True` if the underlying entity is locked.", "title": "locked", "_name_": "locked", "_required_": true}}, "required": ["id", "subsys", "device_type", "device_path", "device_uuid", "device_nguid", "locked"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "nsid", "subsys", "device_type", "device_path", "filesize", "device_uuid", "device_nguid", "enabled", "locked"]}]}, "nvmet.namespace.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF namespace.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that contains this namespace.", "_name_": "subsys", "_required_": false, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": false}, "device_path": {"description": "Path to the device or file being used to implement the namespace.\n\nWhen `device_type` is:\n\n* \"ZVOL\": `device_path` is e.g. \"zvol/poolname/zvolname\"\n* \"FILE\": `device_path` is e.g. \"/mnt/poolmnt/path/to/file\". The file will be created if necessary.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": false}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "device_uuid": {"description": "Unique device identifier for the namespace.", "minLength": 1, "title": "device_uuid", "type": "string", "_name_": "device_uuid", "_required_": false}, "device_nguid": {"description": "Namespace Globally Unique Identifier for the namespace.", "minLength": 1, "title": "device_nguid", "type": "string", "_name_": "device_nguid", "_required_": false}, "enabled": {"description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Reflect the locked state of the namespace.\n\nThe underlying `device_path` could be an encrypted ZVOL, or a file on an encrypted dataset. In either case `locked` will be `True` if the underlying entity is locked.", "title": "locked", "_name_": "locked", "_required_": false}}, "title": "NVMetNamespaceQueryResultItem", "type": "object", "_attrs_order_": ["id", "nsid", "subsys", "device_type", "device_path", "filesize", "device_uuid", "device_nguid", "enabled", "locked"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF namespace.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "subsys": {"description": "NVMe-oF subsystem that contains this namespace.", "title": "subsys", "_name_": "subsys", "_required_": false}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": false}, "device_path": {"description": "Path to the device or file being used to implement the namespace.\n\nWhen `device_type` is:\n\n* \"ZVOL\": `device_path` is e.g. \"zvol/poolname/zvolname\"\n* \"FILE\": `device_path` is e.g. \"/mnt/poolmnt/path/to/file\". The file will be created if necessary.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": false}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "device_uuid": {"description": "Unique device identifier for the namespace.", "minLength": 1, "title": "device_uuid", "type": "string", "_name_": "device_uuid", "_required_": false}, "device_nguid": {"description": "Namespace Globally Unique Identifier for the namespace.", "minLength": 1, "title": "device_nguid", "type": "string", "_name_": "device_nguid", "_required_": false}, "enabled": {"description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Reflect the locked state of the namespace.\n\nThe underlying `device_path` could be an encrypted ZVOL, or a file on an encrypted dataset. In either case `locked` will be `True` if the underlying entity is locked.", "title": "locked", "_name_": "locked", "_required_": false}}, "title": "NVMetNamespaceQueryResultItem", "type": "object", "_attrs_order_": ["id", "nsid", "subsys", "device_type", "device_path", "filesize", "device_uuid", "device_nguid", "enabled", "locked"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.namespace.update": {"description": "Update NVMe target namespace of `id`.", "cli_description": "Update NVMe target namespace of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NVMe-oF namespace to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": false}, "device_path": {"description": "Normalized path to the device or file for the namespace.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": false}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "enabled": {"description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "subsys_id": {"description": "ID of the NVMe-oF subsystem to contain this namespace.", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": false}}, "title": "nvmet_namespace_update", "type": "object", "description": "Updated NVMe-oF namespace configuration data.", "_name_": "nvmet_namespace_update", "_required_": true, "_attrs_order_": ["nsid", "device_type", "device_path", "filesize", "enabled", "subsys_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF namespace.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "nsid": {"anyOf": [{"exclusiveMaximum": 4294967295, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Namespace ID (NSID).\n\nEach namespace within a subsystem has an associated NSID, unique within that subsystem.\n\nIf not supplied during `namespace` creation then the next available NSID will be used.", "title": "nsid", "_name_": "nsid", "_required_": false}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that contains this namespace.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}, "device_type": {"description": "Type of device (or file) used to implement the namespace. ", "enum": ["ZVOL", "FILE"], "title": "device_type", "type": "string", "_name_": "device_type", "_required_": true}, "device_path": {"description": "Path to the device or file being used to implement the namespace.\n\nWhen `device_type` is:\n\n* \"ZVOL\": `device_path` is e.g. \"zvol/poolname/zvolname\"\n* \"FILE\": `device_path` is e.g. \"/mnt/poolmnt/path/to/file\". The file will be created if necessary.", "minLength": 1, "title": "device_path", "type": "string", "_name_": "device_path", "_required_": true}, "filesize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "When `device_type` is \"FILE\" then this will be the size of the file in bytes.", "title": "filesize", "_name_": "filesize", "_required_": false}, "device_uuid": {"description": "Unique device identifier for the namespace.", "minLength": 1, "title": "device_uuid", "type": "string", "_name_": "device_uuid", "_required_": true}, "device_nguid": {"description": "Namespace Globally Unique Identifier for the namespace.", "minLength": 1, "title": "device_nguid", "type": "string", "_name_": "device_nguid", "_required_": true}, "enabled": {"default": true, "description": "If `enabled` is `False` then the namespace will not be accessible.\n\nSome namespace configuration changes are blocked when that namespace is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Reflect the locked state of the namespace.\n\nThe underlying `device_path` could be an encrypted ZVOL, or a file on an encrypted dataset. In either case `locked` will be `True` if the underlying entity is locked.", "title": "locked", "_name_": "locked", "_required_": true}}, "required": ["id", "subsys", "device_type", "device_path", "device_uuid", "device_nguid", "locked"], "title": "result", "type": "object", "description": "The updated NVMe-oF namespace configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "nsid", "subsys", "device_type", "device_path", "filesize", "device_uuid", "device_nguid", "enabled", "locked"]}]}, "nvmet.port.create": {"description": "Create a NVMe target `port`.\n\n`ports` are the means through which subsystems (`subsys`) are made available to clients (`hosts`).", "cli_description": "Create a NVMe target `port`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "NVMe-oF port configuration data for creation (TCP/RDMA or Fibre Channel).", "discriminator": {"mapping": {"FC": "#/$defs/NVMetPortCreateFC", "RDMA": "#/$defs/NVMetPortCreateRDMATCP", "TCP": "#/$defs/NVMetPortCreateRDMATCP"}, "propertyName": "addr_trtype"}, "oneOf": [{"additionalProperties": false, "properties": {"addr_trtype": {"enum": ["TCP", "RDMA"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"default": 4420, "maximum": 65535, "minimum": 1024, "title": "addr_trsvcid", "type": "integer", "_name_": "addr_trsvcid", "_required_": false}, "addr_traddr": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "title": "addr_traddr", "_name_": "addr_traddr", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["addr_trtype", "addr_traddr"], "title": "NVMetPortCreateRDMATCP", "type": "object", "_attrs_order_": ["addr_trtype", "addr_trsvcid", "addr_traddr", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, {"additionalProperties": false, "properties": {"addr_trtype": {"const": "FC", "description": "Fabric transport technology name.", "enum": ["FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.", "minLength": 1, "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["addr_trtype", "addr_traddr"], "title": "NVMetPortCreateFC", "type": "object", "_attrs_order_": ["addr_trtype", "addr_traddr", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}], "title": "nvmet_port_create", "_name_": "nvmet_port_create", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "result", "type": "object", "description": "The created NVMe-oF port configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}]}, "nvmet.port.delete": {"description": "Delete NVMe target `port` of `id`.", "cli_description": "Delete NVMe target `port` of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NVMe-oF port to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "Optional `boolean` to force port deletion, even if currently associated with one or more subsystems. ", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "options", "type": "object", "description": "Options controlling port deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["force"]}], "returns": [{"const": true, "description": "Returns `true` when the NVMe-oF port is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "nvmet.port.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}]}, "nvmet.port.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": false}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": false}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": false}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": false}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": false}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "title": "NVMetPortQueryResultItem", "type": "object", "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": false}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": false}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": false}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": false}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": false}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "title": "NVMetPortQueryResultItem", "type": "object", "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.port.transport_address_choices": {"description": "Returns possible choices for `addr_traddr` attribute of `port` create and update.", "cli_description": "Returns possible choices for `addr_traddr` attribute of `port` create and update", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, {"default": false, "description": "Return information as if ANA was enabled. ", "title": "force_ana", "type": "boolean", "_name_": "force_ana", "_required_": false}], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping transport addresses to their descriptions.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "nvmet.port.update": {"description": "Update NVMe target `port` of `id`.", "cli_description": "Update NVMe target `port` of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NVMe-oF port to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"anyOf": [{"additionalProperties": false, "properties": {"addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": false}, "addr_trsvcid": {"description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "maximum": 65535, "minimum": 1024, "title": "addr_trsvcid", "type": "integer", "_name_": "addr_trsvcid", "_required_": false}, "addr_traddr": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "_name_": "addr_traddr", "_required_": false}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "title": "NVMetPortUpdateRDMATCP", "type": "object", "_attrs_order_": ["addr_trtype", "addr_trsvcid", "addr_traddr", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, {"additionalProperties": false, "properties": {"addr_trtype": {"const": "FC", "description": "Fabric transport technology name.", "enum": ["FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": false}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.", "minLength": 1, "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": false}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "title": "NVMetPortUpdateFC", "type": "object", "_attrs_order_": ["addr_trtype", "addr_traddr", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}], "description": "Updated NVMe-oF port configuration data.", "title": "nvmet_port_update", "_name_": "nvmet_port_update", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "result", "type": "object", "description": "The updated NVMe-oF port configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}]}, "nvmet.port_subsys.create": {"description": "Create an association between a `port` and a subsystem (`subsys`).\n\nThis will make the subsystem accessible on that port (subject to access\ncontrol by either the `allow_any_host` subsystem attribute, or `hosts`\nassociated with the subsystem).", "cli_description": "Create an association between a `port` and a subsystem (`subsys`)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"port_id": {"description": "ID of the NVMe-oF port to associate.", "title": "port_id", "type": "integer", "_name_": "port_id", "_required_": true}, "subsys_id": {"description": "ID of the NVMe-oF subsystem to make accessible.", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": true}}, "required": ["port_id", "subsys_id"], "title": "nvmet_port_subsys_create", "type": "object", "description": "Port-subsystem association configuration data for creation.", "_name_": "nvmet_port_subsys_create", "_required_": true, "_attrs_order_": ["port_id", "subsys_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the port-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "port", "type": "object", "description": "NVMe-oF port that provides access to the subsystem.", "_name_": "port", "_required_": true, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that is accessible through the port.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "required": ["id", "port", "subsys"], "title": "result", "type": "object", "description": "The created port-subsystem association.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "subsys"]}]}, "nvmet.port_subsys.delete": {"description": "Delete `port`/`subsys` association of `id`.\n\nThe specified subsystem will no longer be accessible on the `port`.", "cli_description": "Delete `port`/`subsys` association of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the port-subsystem association to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the port-subsystem association is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "nvmet.port_subsys.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the port-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "port", "type": "object", "description": "NVMe-oF port that provides access to the subsystem.", "_name_": "port", "_required_": true, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that is accessible through the port.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "required": ["id", "port", "subsys"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "subsys"]}]}, "nvmet.port_subsys.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the port-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "port": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "port", "type": "object", "description": "NVMe-oF port that provides access to the subsystem.", "_name_": "port", "_required_": false, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that is accessible through the port.", "_name_": "subsys", "_required_": false, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "title": "NVMetPortSubsysQueryResultItem", "type": "object", "_attrs_order_": ["id", "port", "subsys"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the port-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "port": {"description": "NVMe-oF port that provides access to the subsystem.", "title": "port", "_name_": "port", "_required_": false}, "subsys": {"description": "NVMe-oF subsystem that is accessible through the port.", "title": "subsys", "_name_": "subsys", "_required_": false}}, "title": "NVMetPortSubsysQueryResultItem", "type": "object", "_attrs_order_": ["id", "port", "subsys"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.port_subsys.update": {"description": "Update `port`/`subsys` association of `id`.", "cli_description": "Update `port`/`subsys` association of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the port-subsystem association to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"port_id": {"description": "ID of the NVMe-oF port to associate.", "title": "port_id", "type": "integer", "_name_": "port_id", "_required_": false}, "subsys_id": {"description": "ID of the NVMe-oF subsystem to make accessible.", "title": "subsys_id", "type": "integer", "_name_": "subsys_id", "_required_": false}}, "title": "nvmet_port_subsys_update", "type": "object", "description": "Updated port-subsystem association configuration data.", "_name_": "nvmet_port_subsys_update", "_required_": true, "_attrs_order_": ["port_id", "subsys_id"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the port-subsystem association.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "port": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF port.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "index": {"description": "Index of the port, for internal use. ", "title": "index", "type": "integer", "_name_": "index", "_required_": true}, "addr_trtype": {"description": "Fabric transport technology name. ", "enum": ["TCP", "RDMA", "FC"], "title": "addr_trtype", "type": "string", "_name_": "addr_trtype", "_required_": true}, "addr_trsvcid": {"anyOf": [{"type": "integer"}, {"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Transport-specific TRSVCID field. When configured for TCP/IP or RDMA this will be the port number. ", "title": "addr_trsvcid", "_name_": "addr_trsvcid", "_required_": true}, "addr_traddr": {"description": "A transport-specific field identifying the NVMe host port to use for the connection to the controller.\n\nFor TCP or RDMA transports, this will be an IPv4 or IPv6 address.", "title": "addr_traddr", "type": "string", "_name_": "addr_traddr", "_required_": true}, "addr_adrfam": {"description": "Address family.", "enum": ["IPV4", "IPV6", "FC"], "title": "addr_adrfam", "type": "string", "_name_": "addr_adrfam", "_required_": true}, "inline_data_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum size for inline data transfers or `null` for default.", "title": "inline_data_size", "_name_": "inline_data_size", "_required_": false}, "max_queue_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue entries or `null` for default.", "title": "max_queue_size", "_name_": "max_queue_size", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether Protection Information (PI) is enabled or `null` for default.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "enabled": {"default": true, "description": "Port enabled. When NVMe target is running, cannot make changes to an enabled port. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam"], "title": "port", "type": "object", "description": "NVMe-oF port that provides access to the subsystem.", "_name_": "port", "_required_": true, "_attrs_order_": ["id", "index", "addr_trtype", "addr_trsvcid", "addr_traddr", "addr_adrfam", "inline_data_size", "max_queue_size", "pi_enable", "enabled"]}, "subsys": {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "subsys", "type": "object", "description": "NVMe-oF subsystem that is accessible through the port.", "_name_": "subsys", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}}, "required": ["id", "port", "subsys"], "title": "result", "type": "object", "description": "The updated port-subsystem association.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "port", "subsys"]}]}, "nvmet.subsys.create": {"description": "Create a NVMe target subsystem (`subsys`).\n\nWhen a `subsys` contains one of more `namespaces`, and is associated with one or\nmore `ports` then clients may access the storage using NVMe-oF.\n\nAll clients may access the subsystem if the `allow_any_host` attribute is set. Otherwise,\naccess is only permitted to `hosts` who have been associated with the subsystem.\n\nSee `nvmet.host.create` and `nvmet.host_subsys.create`.", "cli_description": "Create a NVMe target subsystem (`subsys`)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"maxLength": 223, "minLength": 11, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nMust be a valid NQN format if provided.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}}, "required": ["name"], "title": "nvmet_subsys_create", "type": "object", "description": "Configuration data for creating a new NVMe-oF subsystem.", "_name_": "nvmet_subsys_create", "_required_": true, "_attrs_order_": ["name", "subnqn", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "result", "type": "object", "description": "The newly created NVMe-oF subsystem configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}]}, "nvmet.subsys.delete": {"description": "Delete NVMe target subsystem (`subsys`) of `id`.", "cli_description": "Delete NVMe target subsystem (`subsys`) of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the subsystem to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "Force subsystem deletion, even if currently associated with one or more namespaces or ports. ", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "options", "type": "object", "description": "Options for subsystem deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["force"]}], "returns": [{"const": true, "description": "Indicates successful deletion of the subsystem.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "nvmet.subsys.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}]}, "nvmet.subsys.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NVME_TARGET_READ", "SHARING_NVME_TARGET_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": false}, "allow_any_host": {"description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "title": "NVMetSubsysQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": false}, "allow_any_host": {"description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "title": "NVMetSubsysQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "nvmet.subsys.update": {"description": "Update NVMe target subsystem (`subsys`) of `id`.", "cli_description": "Update NVMe target subsystem (`subsys`) of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NVME_TARGET_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the subsystem to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "subnqn": {"anyOf": [{"maxLength": 223, "minLength": 11, "type": "string"}, {"type": "null"}], "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nMust be a valid NQN format if provided.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "allow_any_host": {"description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}}, "title": "nvmet_subsys_update", "type": "object", "description": "Updated configuration data for the NVMe-oF subsystem.", "_name_": "nvmet_subsys_update", "_required_": true, "_attrs_order_": ["name", "subnqn", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NVMe-oF subsystem.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Human readable name for the subsystem.\n\nIf `subnqn` is not provided on creation, then this name will be appended to the `basenqn` from `nvmet.global.config` to generate a subnqn.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "subnqn": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "NVMe Qualified Name (NQN) for the subsystem.\n\nIf not provided during creation, will be auto-generated by appending the `name` to the `basenqn` from `nvmet.global.config`.", "title": "subnqn", "_name_": "subnqn", "_required_": false}, "serial": {"description": "Serial number assigned to the subsystem.", "title": "serial", "type": "string", "_name_": "serial", "_required_": true}, "allow_any_host": {"default": false, "description": "Any host can access the storage associated with this subsystem (i.e. no access control).", "title": "allow_any_host", "type": "boolean", "_name_": "allow_any_host", "_required_": false}, "pi_enable": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Enable Protection Information (PI) for data integrity checking.", "title": "pi_enable", "_name_": "pi_enable", "_required_": false}, "qid_max": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum number of queue IDs allowed for this subsystem.", "title": "qid_max", "_name_": "qid_max", "_required_": false}, "ieee_oui": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IEEE Organizationally Unique Identifier for the subsystem.", "title": "ieee_oui", "_name_": "ieee_oui", "_required_": false}, "ana": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "If set to either `True` or `False`, then *override* the global `ana` setting from `nvmet.global.config` for this subsystem only.\n\nIf `null`, then the global `ana` setting will take effect.", "title": "ana", "_name_": "ana", "_required_": false}, "hosts": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of host ids which have access to this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "hosts", "_name_": "hosts", "_required_": false}, "namespaces": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of namespaces ids in this subsystem.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "namespaces", "_name_": "namespaces", "_required_": false}, "ports": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "default": [], "description": "List of ports ids on which this subsystem is available.\n\nOnly populated on query if `extra.options.verbose` is set.", "title": "ports", "_name_": "ports", "_required_": false}}, "required": ["id", "name", "serial"], "title": "result", "type": "object", "description": "The updated NVMe-oF subsystem configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "subnqn", "serial", "allow_any_host", "pi_enable", "qid_max", "ieee_oui", "ana", "hosts", "namespaces", "ports"]}]}, "pool.attach": {"description": "Attach a disk to an existing vdev in a pool, converting a striped vdev to a mirror or extending\nan existing mirror to an n-way mirror.\n\nThis operation will format the new disk, attach it to the target vdev, and wait for resilvering\nto complete if the target is a RAIDZ vdev undergoing expansion.\n\nLocking behavior:\n- If another attach operation is already using the same disk, this call will fail immediately\n with EBUSY rather than queueing.\n- If another attach operation is running on the same pool (but with a different disk), this\n call will queue and wait for the previous operation to complete.\n- Operations on different pools with different disks can run concurrently.", "cli_description": "Attach a disk to an existing vdev in a pool, converting a striped vdev to a mirror or extending an existing mirror to an n-way mirror", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to attach a disk to.", "title": "oid", "type": "integer", "_name_": "oid", "_required_": true}, {"additionalProperties": false, "properties": {"target_vdev": {"description": "The GUID of the vdev where the disk needs to be attached. In the case of a STRIPED vdev, this is the STRIPED disk GUID which will be converted into a mirror. If `target_vdev` is already a mirror, it will be converted into an n-way mirror.", "title": "target_vdev", "type": "string", "_name_": "target_vdev", "_required_": true}, "new_disk": {"description": "Name of the new disk to attach.", "title": "new_disk", "type": "string", "_name_": "new_disk", "_required_": true}, "allow_duplicate_serials": {"default": false, "description": "Whether to allow attaching disks with duplicate serial numbers.", "title": "allow_duplicate_serials", "type": "boolean", "_name_": "allow_duplicate_serials", "_required_": false}}, "required": ["target_vdev", "new_disk"], "title": "options", "type": "object", "description": "Configuration for the disk attachment operation.", "_name_": "options", "_required_": true, "_attrs_order_": ["target_vdev", "new_disk", "allow_duplicate_serials"]}], "returns": [{"description": "Returns `null` on successful disk attachment.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.attachments": {"description": "Return a list of services dependent of this pool.\n\nResponsible for telling the user whether there is a related\nshare, asking for confirmation.", "cli_description": "Return a list of services dependent of this pool", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "ID of the pool to retrieve attachments for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of services and resources using this pool.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of attachment.", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the service using this pool. `null` if not a service attachment.", "title": "service", "_name_": "service", "_required_": true}, "attachments": {"description": "Array of specific attachment identifiers or paths.", "items": [{"type": "string"}], "title": "attachments", "type": "array", "_name_": "attachments", "_required_": true}}, "required": ["type", "service", "attachments"], "title": "PoolAttachment", "type": "object", "_attrs_order_": ["type", "service", "attachments"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.create": {"description": "Create a new ZFS Pool.\n\n", "cli_description": "Create a new ZFS Pool", "examples": {"websocket": ["\n\n Create a pool named \"tank\", raidz1 with 3 disks, 1 cache disk, 1 ZIL/log disk\n and 1 hot spare disk.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.create\",\n \"params\": [{\n \"name\": \"tank\",\n \"topology\": {\n \"data\": [\n {\"type\": \"RAIDZ1\", \"disks\": [\"da1\", \"da2\", \"da3\"]}\n ],\n \"cache\": [\n {\"type\": \"STRIPE\", \"disks\": [\"da4\"]}\n ],\n \"log\": [\n {\"type\": \"RAIDZ1\", \"disks\": [\"da5\"]}\n ],\n \"spares\": [\"da6\"]\n }\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name for the new storage pool.", "maxLength": 50, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "encryption": {"default": false, "description": "If set, create a ZFS encrypted root dataset for this pool.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "dedup_table_quota": {"default": "AUTO", "description": "How to manage the deduplication table quota allocation.", "enum": ["AUTO", "CUSTOM", null], "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": false}, "dedup_table_quota_value": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Custom quota value in bytes when `dedup_table_quota` is set to CUSTOM.", "title": "dedup_table_quota_value", "_name_": "dedup_table_quota_value", "_required_": false}, "deduplication": {"default": null, "description": "Make sure no block of data is duplicated in the pool. If set to `VERIFY` and two blocks have similar signatures, byte-to-byte comparison is performed to ensure that the blcoks are identical. This should be used in special circumstances as it carries a significant overhead.", "enum": ["ON", "VERIFY", "OFF", null], "title": "deduplication", "_name_": "deduplication", "_required_": false}, "checksum": {"default": null, "description": "Checksum algorithm to use for data integrity verification.", "enum": ["ON", "OFF", "FLETCHER2", "FLETCHER4", "SHA256", "SHA512", "SKEIN", "EDONR", "BLAKE3", null], "title": "checksum", "_name_": "checksum", "_required_": false}, "encryption_options": {"additionalProperties": false, "description": "Specify configuration for encryption of root dataset.", "properties": {"generate_key": {"default": false, "description": "Automatically generate the key to be used for dataset encryption.", "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "pbkdf2iters": {"default": 350000, "description": "Number of PBKDF2 iterations for key derivation from passphrase. Higher iterations improve security against brute force attacks but increase unlock time. Default 350,000 balances security and performance.", "minimum": 100000, "title": "pbkdf2iters", "type": "integer", "_name_": "pbkdf2iters", "_required_": false}, "algorithm": {"default": "AES-256-GCM", "description": "Encryption algorithm to use for dataset encryption.", "enum": ["AES-128-CCM", "AES-192-CCM", "AES-256-CCM", "AES-128-GCM", "AES-192-GCM", "AES-256-GCM"], "title": "algorithm", "type": "string", "_name_": "algorithm", "_required_": false}, "passphrase": {"anyOf": [{"minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "description": "Must be specified if encryption for root dataset is desired with a passphrase as a key.", "title": "passphrase", "_name_": "passphrase", "_required_": false}, "key": {"anyOf": [{"maxLength": 64, "minLength": 64, "type": "string"}, {"type": "null"}], "default": null, "description": "A hex-encoded key specified as an alternative to using `passphrase`.", "title": "key", "_name_": "key", "_required_": false}}, "title": "encryption_options", "type": "object", "_name_": "encryption_options", "_required_": false, "_attrs_order_": ["generate_key", "pbkdf2iters", "algorithm", "passphrase", "key"]}, "topology": {"additionalProperties": false, "properties": {"data": {"description": "All vdevs must be of the same `type`.", "items": [{"discriminator": {"mapping": {"DRAID1": "#/$defs/PoolCreateTopologyDataVdevDRAID", "DRAID2": "#/$defs/PoolCreateTopologyDataVdevDRAID", "DRAID3": "#/$defs/PoolCreateTopologyDataVdevDRAID", "MIRROR": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "RAIDZ1": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "RAIDZ2": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "RAIDZ3": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "STRIPE": "#/$defs/PoolCreateTopologyDataVdevNonDRAID"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"description": "Type of distributed RAID configuration.", "enum": ["DRAID1", "DRAID2", "DRAID3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this DRAID vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}, "draid_data_disks": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Defaults to `zfs.VDEV_DRAID_MAX_CHILDREN`.", "title": "draid_data_disks", "_name_": "draid_data_disks", "_required_": false}, "draid_spare_disks": {"default": 0, "description": "Number of distributed spare disks in the DRAID configuration.", "title": "draid_spare_disks", "type": "integer", "_name_": "draid_spare_disks", "_required_": false}}, "required": ["type", "disks"], "title": "PoolCreateTopologyDataVdevDRAID", "type": "object", "_attrs_order_": ["type", "disks", "draid_data_disks", "draid_spare_disks"]}, {"additionalProperties": false, "properties": {"type": {"description": "Type of vdev configuration.", "enum": ["RAIDZ1", "RAIDZ2", "RAIDZ3", "MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyDataVdevNonDRAID", "type": "object", "_attrs_order_": ["type", "disks"]}]}], "minItems": 1, "title": "data", "type": "array", "_name_": "data", "_required_": true}, "special": {"default": [], "description": "Array of special vdev configurations for metadata storage.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of special vdev configuration for metadata storage.", "enum": ["MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this special vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologySpecialVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "special", "type": "array", "_name_": "special", "_required_": false}, "dedup": {"default": [], "description": "Array of deduplication table vdev configurations.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of deduplication table vdev configuration.", "enum": ["MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this dedup vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyDedupVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": false}, "cache": {"default": [], "description": "Array of L2ARC cache vdev configurations.", "items": [{"additionalProperties": false, "properties": {"type": {"const": "STRIPE", "description": "Type of L2ARC cache vdev configuration (always stripe).", "enum": ["STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this cache vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyCacheVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "cache", "type": "array", "_name_": "cache", "_required_": false}, "log": {"default": [], "description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of ZFS Intent Log (ZIL) vdev configuration.", "enum": ["MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this log vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyLogVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "log", "type": "array", "_name_": "log", "_required_": false}, "spares": {"default": [], "description": "Array of spare disk names for the pool.", "items": [{"type": "string"}], "title": "spares", "type": "array", "_name_": "spares", "_required_": false}}, "required": ["data"], "title": "topology", "type": "object", "description": "Physical layout and configuration of vdevs in the pool.", "examples": [{"cache": [{"disks": ["da4"], "type": "STRIPE"}], "data": [{"disks": ["da1", "da2", "da3"], "type": "RAIDZ1"}], "log": [{"disks": ["da5"], "type": "STRIPE"}], "spares": ["da6"]}], "_name_": "topology", "_required_": true, "_attrs_order_": ["data", "special", "dedup", "cache", "log", "spares"]}, "allow_duplicate_serials": {"default": false, "description": "Whether to allow disks with duplicate serial numbers in the pool.", "title": "allow_duplicate_serials", "type": "boolean", "_name_": "allow_duplicate_serials", "_required_": false}}, "required": ["name", "topology"], "title": "data", "type": "object", "description": "Configuration for creating a new storage pool.", "_name_": "data", "_required_": true, "_attrs_order_": ["name", "encryption", "dedup_table_quota", "dedup_table_quota_value", "deduplication", "checksum", "encryption_options", "topology", "allow_duplicate_serials"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this storage pool.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the storage pool.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "guid": {"description": "Globally unique identifier (GUID) for this pool.", "title": "guid", "type": "string", "_name_": "guid", "_required_": true}, "status": {"description": "Current status of the pool.", "examples": ["ONLINE", "DEGRADED", "FAULTED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "path": {"description": "Filesystem path where the pool is mounted.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "scan": {"anyOf": [{"examples": [{"bytes_issued": null, "bytes_processed": null, "bytes_to_process": null, "end_time": null, "errors": null, "function": null, "pause": null, "percentage": null, "start_time": null, "state": null, "total_secs_left": null}], "type": "object"}, {"type": "null"}], "description": "Information about any active scrub or resilver operation. `null` if no operation is running.", "title": "scan", "_name_": "scan", "_required_": true}, "expand": {"anyOf": [{"examples": [{"bytes_reflowed": 978944, "bytes_to_reflow": 835584, "end_time": null, "expanding_vdev": 0, "percentage": 85.35564853556485, "start_time": null, "state": "FINISHED", "total_secs_left": null, "waiting_for_resilver": 0}], "type": "object"}, {"type": "null"}], "description": "Information about any active pool expansion operation. `null` if no expansion is running.", "title": "expand", "_name_": "expand", "_required_": true}, "is_upgraded": {"default": false, "description": "Whether this pool has been upgraded to the latest feature flags.", "title": "is_upgraded", "type": "boolean", "_name_": "is_upgraded", "_required_": false}, "healthy": {"description": "Whether the pool is in a healthy state with no errors or warnings.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "warning": {"description": "Whether the pool has warning conditions that require attention.", "title": "warning", "type": "boolean", "_name_": "warning", "_required_": true}, "status_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Detailed status code for the pool condition. `null` if not applicable.", "title": "status_code", "_name_": "status_code", "_required_": true}, "status_detail": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the pool status. `null` if not available.", "title": "status_detail", "_name_": "status_detail", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the pool in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": true}, "allocated": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space currently allocated in the pool in bytes. `null` if not available.", "title": "allocated", "_name_": "allocated", "_required_": true}, "free": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of free space available in the pool in bytes. `null` if not available.", "title": "free", "_name_": "free", "_required_": true}, "freeing": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space being freed (in bytes) by ongoing operations. `null` if not available.", "title": "freeing", "_name_": "freeing", "_required_": true}, "dedup_table_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the deduplication table in bytes. `null` if deduplication is not enabled.", "title": "dedup_table_size", "_name_": "dedup_table_size", "_required_": true}, "dedup_table_quota": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Quota limit for the deduplication table. `null` if no quota is set.", "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": true}, "fragmentation": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Percentage of pool fragmentation as a string. `null` if not available.", "title": "fragmentation", "_name_": "fragmentation", "_required_": true}, "size_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of the pool size. `null` if not available.", "title": "size_str", "_name_": "size_str", "_required_": true}, "allocated_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of allocated space. `null` if not available.", "title": "allocated_str", "_name_": "allocated_str", "_required_": true}, "free_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of free space. `null` if not available.", "title": "free_str", "_name_": "free_str", "_required_": true}, "freeing_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of space being freed. `null` if not available.", "title": "freeing_str", "_name_": "freeing_str", "_required_": true}, "autotrim": {"description": "Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.", "examples": [{"parsed": "off", "rawvalue": "off", "source": "DEFAULT", "value": "off"}], "title": "autotrim", "type": "object", "_name_": "autotrim", "_required_": true}, "topology": {"anyOf": [{"additionalProperties": false, "properties": {"data": {"description": "Array of data vdev configurations in the pool.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "log": {"description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{}], "title": "log", "type": "array", "_name_": "log", "_required_": true}, "cache": {"description": "Array of L2ARC cache vdev configurations.", "items": [{}], "title": "cache", "type": "array", "_name_": "cache", "_required_": true}, "spare": {"description": "Array of spare disk configurations.", "items": [{}], "title": "spare", "type": "array", "_name_": "spare", "_required_": true}, "special": {"description": "Array of special vdev configurations for metadata.", "items": [{}], "title": "special", "type": "array", "_name_": "special", "_required_": true}, "dedup": {"description": "Array of deduplication table vdev configurations.", "items": [{}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": true}}, "required": ["data", "log", "cache", "spare", "special", "dedup"], "title": "PoolTopology", "type": "object", "_attrs_order_": ["data", "log", "cache", "spare", "special", "dedup"]}, {"type": "null"}], "description": "Physical topology and structure of the pool including vdevs. `null` if not available.", "title": "topology", "_name_": "topology", "_required_": true}}, "required": ["id", "name", "guid", "status", "path", "scan", "expand", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"], "title": "result", "type": "object", "description": "Information about the newly created pool.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "guid", "status", "path", "scan", "expand", "is_upgraded", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"]}]}, "pool.ddt_prefetch": {"description": "Prefetch DDT entries in pool `pool_name`.", "cli_description": "Prefetch DDT entries in pool `pool_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "Name of the pool to prefetch deduplication table entries for.", "minLength": 1, "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": true}], "returns": [{"description": "Returns `null` on successful deduplication table prefetch.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.ddt_prune": {"description": "Prune DDT entries in pool `pool_name` based on the specified options.\n\n`percentage` is the percentage of DDT entries to prune.\n\n`days` is the number of days to prune DDT entries.", "cli_description": "Prune DDT entries in pool `pool_name` based on the specified options", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"pool_name": {"description": "Name of the pool to prune deduplication table entries from.", "minLength": 1, "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": true}, "percentage": {"anyOf": [{"maximum": 100, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Percentage of deduplication table entries to prune.", "title": "percentage", "_name_": "percentage", "_required_": false}, "days": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Remove entries older than this many days.", "title": "days", "_name_": "days", "_required_": false}}, "required": ["pool_name"], "title": "options", "type": "object", "description": "PoolDdtPruneArgs parameters.", "_name_": "options", "_required_": true, "_attrs_order_": ["pool_name", "percentage", "days"]}], "returns": [{"description": "Returns `null` on successful deduplication table pruning.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.detach": {"description": "Detach a disk from pool of id `id`.\n\n", "cli_description": "Detach a disk from pool of id `id`", "examples": {"websocket": ["\n\n Detach ZFS device.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.detach,\n \"params\": [1, {\n \"label\": \"80802394992848654\"\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to detach a disk from.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"label": {"description": "GUID or device name of the vdev to detach.", "title": "label", "type": "string", "_name_": "label", "_required_": true}, "wipe": {"default": false, "description": "Whether to wipe the detached disk after removal.", "title": "wipe", "type": "boolean", "_name_": "wipe", "_required_": false}}, "required": ["label"], "title": "options", "type": "object", "description": "Configuration for the disk detachment operation.", "_name_": "options", "_required_": true, "_attrs_order_": ["label", "wipe"]}], "returns": [{"const": true, "description": "Indicates successful disk detachment.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.expand": {"description": "Expand pool to fit all available disk space.", "cli_description": "Expand pool to fit all available disk space", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to expand.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful pool expansion initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.export": {"description": "Export pool of `id`.\n\n`cascade` will delete all attachments of the given pool (`pool.attachments`).\n`restart_services` will restart services that have open files on given pool.\n`destroy` will also PERMANENTLY destroy the pool/data.\n\n", "cli_description": "Export pool of `id`", "examples": {"websocket": ["\n\n Export pool of id 1.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.export,\n \"params\": [1, {\n \"cascade\": true,\n \"destroy\": false\n }]\n }\n\nIf this is an HA system and failover is enabled and the last zpool is\nexported/disconnected, then this will raise EOPNOTSUPP. Failover must\nbe disabled before exporting the last zpool on the system."]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to export.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"cascade": {"default": false, "description": "Delete all attachments of the given pool (`pool.attachments`).", "title": "cascade", "type": "boolean", "_name_": "cascade", "_required_": false}, "restart_services": {"default": false, "description": "Restart services that have open files on given pool.", "title": "restart_services", "type": "boolean", "_name_": "restart_services", "_required_": false}, "destroy": {"default": false, "description": "PERMANENTLY destroy the pool/data.", "title": "destroy", "type": "boolean", "_name_": "destroy", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the pool export process.", "_name_": "options", "_required_": false, "_attrs_order_": ["cascade", "restart_services", "destroy"]}], "returns": [{"description": "Returns `null` on successful pool export.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.filesystem_choices": {"description": "Returns all available datasets, except the following:\n 1. system datasets\n 2. application(s) internal datasets\n\n", "cli_description": "Returns all available datasets, except the following: 1", "examples": {"websocket": ["\n\n Get all datasets.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.filesystem_choices\",\n \"params\": []\n }\n\n Get only filesystems (exclude volumes).\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.filesystem_choices\",\n \"params\": [[\"FILESYSTEM\"]]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": ["FILESYSTEM", "VOLUME"], "description": "Dataset types to include in the results.", "items": [{"enum": ["FILESYSTEM", "VOLUME"], "type": "string"}], "title": "types", "type": "array", "_name_": "types", "_required_": false}], "returns": [{"description": "Array of available filesystem/dataset paths.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.get_disks": {"description": "Get all disks in use by pools.\nIf `id` is provided only the disks from the given pool `id` will be returned.", "cli_description": "Get all disks in use by pools", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the pool to get disks for. If `null`, returns disks from all pools.", "title": "id", "_name_": "id", "_required_": false}], "returns": [{"description": "Array of disk device names used in the specified pool(s).", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this storage pool.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the storage pool.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "guid": {"description": "Globally unique identifier (GUID) for this pool.", "title": "guid", "type": "string", "_name_": "guid", "_required_": true}, "status": {"description": "Current status of the pool.", "examples": ["ONLINE", "DEGRADED", "FAULTED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "path": {"description": "Filesystem path where the pool is mounted.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "scan": {"anyOf": [{"examples": [{"bytes_issued": null, "bytes_processed": null, "bytes_to_process": null, "end_time": null, "errors": null, "function": null, "pause": null, "percentage": null, "start_time": null, "state": null, "total_secs_left": null}], "type": "object"}, {"type": "null"}], "description": "Information about any active scrub or resilver operation. `null` if no operation is running.", "title": "scan", "_name_": "scan", "_required_": true}, "expand": {"anyOf": [{"examples": [{"bytes_reflowed": 978944, "bytes_to_reflow": 835584, "end_time": null, "expanding_vdev": 0, "percentage": 85.35564853556485, "start_time": null, "state": "FINISHED", "total_secs_left": null, "waiting_for_resilver": 0}], "type": "object"}, {"type": "null"}], "description": "Information about any active pool expansion operation. `null` if no expansion is running.", "title": "expand", "_name_": "expand", "_required_": true}, "is_upgraded": {"default": false, "description": "Whether this pool has been upgraded to the latest feature flags.", "title": "is_upgraded", "type": "boolean", "_name_": "is_upgraded", "_required_": false}, "healthy": {"description": "Whether the pool is in a healthy state with no errors or warnings.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "warning": {"description": "Whether the pool has warning conditions that require attention.", "title": "warning", "type": "boolean", "_name_": "warning", "_required_": true}, "status_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Detailed status code for the pool condition. `null` if not applicable.", "title": "status_code", "_name_": "status_code", "_required_": true}, "status_detail": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the pool status. `null` if not available.", "title": "status_detail", "_name_": "status_detail", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the pool in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": true}, "allocated": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space currently allocated in the pool in bytes. `null` if not available.", "title": "allocated", "_name_": "allocated", "_required_": true}, "free": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of free space available in the pool in bytes. `null` if not available.", "title": "free", "_name_": "free", "_required_": true}, "freeing": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space being freed (in bytes) by ongoing operations. `null` if not available.", "title": "freeing", "_name_": "freeing", "_required_": true}, "dedup_table_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the deduplication table in bytes. `null` if deduplication is not enabled.", "title": "dedup_table_size", "_name_": "dedup_table_size", "_required_": true}, "dedup_table_quota": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Quota limit for the deduplication table. `null` if no quota is set.", "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": true}, "fragmentation": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Percentage of pool fragmentation as a string. `null` if not available.", "title": "fragmentation", "_name_": "fragmentation", "_required_": true}, "size_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of the pool size. `null` if not available.", "title": "size_str", "_name_": "size_str", "_required_": true}, "allocated_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of allocated space. `null` if not available.", "title": "allocated_str", "_name_": "allocated_str", "_required_": true}, "free_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of free space. `null` if not available.", "title": "free_str", "_name_": "free_str", "_required_": true}, "freeing_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of space being freed. `null` if not available.", "title": "freeing_str", "_name_": "freeing_str", "_required_": true}, "autotrim": {"description": "Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.", "examples": [{"parsed": "off", "rawvalue": "off", "source": "DEFAULT", "value": "off"}], "title": "autotrim", "type": "object", "_name_": "autotrim", "_required_": true}, "topology": {"anyOf": [{"additionalProperties": false, "properties": {"data": {"description": "Array of data vdev configurations in the pool.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "log": {"description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{}], "title": "log", "type": "array", "_name_": "log", "_required_": true}, "cache": {"description": "Array of L2ARC cache vdev configurations.", "items": [{}], "title": "cache", "type": "array", "_name_": "cache", "_required_": true}, "spare": {"description": "Array of spare disk configurations.", "items": [{}], "title": "spare", "type": "array", "_name_": "spare", "_required_": true}, "special": {"description": "Array of special vdev configurations for metadata.", "items": [{}], "title": "special", "type": "array", "_name_": "special", "_required_": true}, "dedup": {"description": "Array of deduplication table vdev configurations.", "items": [{}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": true}}, "required": ["data", "log", "cache", "spare", "special", "dedup"], "title": "PoolTopology", "type": "object", "_attrs_order_": ["data", "log", "cache", "spare", "special", "dedup"]}, {"type": "null"}], "description": "Physical topology and structure of the pool including vdevs. `null` if not available.", "title": "topology", "_name_": "topology", "_required_": true}}, "required": ["id", "name", "guid", "status", "path", "scan", "expand", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "guid", "status", "path", "scan", "expand", "is_upgraded", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"]}]}, "pool.import_find": {"description": "Returns a job id which can be used to retrieve a list of pools available for\nimport with the following details as a result of the job:\nname, guid, status, hostname.", "cli_description": "Returns a job id which can be used to retrieve a list of pools available for import with the following details as a result of the job: name, guid, status, hostname", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Pools available for import.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the pool available for import.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "guid": {"description": "GUID of the pool available for import.", "title": "guid", "type": "string", "_name_": "guid", "_required_": true}, "status": {"description": "Current status of the importable pool.", "title": "status", "type": "string", "_name_": "status", "_required_": true}, "hostname": {"description": "Hostname where the pool was last mounted.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}}, "required": ["name", "guid", "status", "hostname"], "title": "PoolImportFind", "type": "object", "_attrs_order_": ["name", "guid", "status", "hostname"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.import_pool": {"description": "Import a pool found with `pool.import_find`.\n\nErrors:\n ENOENT - Pool not found\n\n", "cli_description": "Import a pool found with `pool", "examples": {"websocket": ["\n\n Import pool of guid 5571830764813710860.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.import_pool,\n \"params\": [{\n \"guid\": \"5571830764813710860\"\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"guid": {"description": "GUID of the pool to import.", "title": "guid", "type": "string", "_name_": "guid", "_required_": true}, "name": {"anyOf": [{"maxLength": 50, "minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "If specified, import the pool using this name.", "title": "name", "_name_": "name", "_required_": false}}, "required": ["guid"], "title": "pool_import", "type": "object", "description": "PoolImportPoolArgs parameters.", "_name_": "pool_import", "_required_": true, "_attrs_order_": ["guid", "name"]}], "returns": [{"const": true, "description": "Indicates successful pool import.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.is_upgraded": {"description": "Returns whether or not the pool of `id` is on the latest version and with all feature\nflags enabled.\n\n", "cli_description": "Returns whether or not the pool of `id` is on the latest version and with all feature flags enabled", "examples": {"websocket": ["\n\n Check if pool of id 1 is upgraded.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.is_upgraded\",\n \"params\": [1]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "ID of the pool to check upgrade status for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Whether the pool has been upgraded to the latest feature flags.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.offline": {"description": "Offline a disk from pool of id `id`.\n\n", "cli_description": "Offline a disk from pool of id `id`", "examples": {"websocket": ["\n\n Offline ZFS device.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.offline,\n \"params\": [1, {\n \"label\": \"80802394992848654\"\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to modify.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"label": {"description": "The vdev guid or device name.", "title": "label", "type": "string", "_name_": "label", "_required_": true}}, "required": ["label"], "title": "options", "type": "object", "description": "Disk identifier to take offline.", "_name_": "options", "_required_": true, "_attrs_order_": ["label"]}], "returns": [{"const": true, "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.online": {"description": "Online a disk from pool of id `id`.\n\n", "cli_description": "Online a disk from pool of id `id`", "examples": {"websocket": ["\n\n Online ZFS device.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.online,\n \"params\": [1, {\n \"label\": \"80802394992848654\"\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to bring a disk online in.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"label": {"description": "The vdev guid or device name.", "title": "label", "type": "string", "_name_": "label", "_required_": true}}, "required": ["label"], "title": "options", "type": "object", "description": "Disk identifier to bring online.", "_name_": "options", "_required_": true, "_attrs_order_": ["label"]}], "returns": [{"const": true, "description": "Indicates successful disk online operation.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.processes": {"description": "Returns a list of running processes using this pool.", "cli_description": "Returns a list of running processes using this pool", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "ID of the pool to get processes for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of processes currently using the pool.", "items": [{"additionalProperties": false, "properties": {"pid": {"description": "Process ID of the process using the pool.", "title": "pid", "type": "integer", "_name_": "pid", "_required_": true}, "name": {"description": "Name of the process using the pool.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "service": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the service if this process belongs to a system service.", "title": "service", "_name_": "service", "_required_": true}, "cmdline": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Full command line of the process.", "title": "cmdline", "_name_": "cmdline", "_required_": true}}, "required": ["pid", "name", "service", "cmdline"], "title": "PoolProcess", "type": "object", "_attrs_order_": ["pid", "name", "service", "cmdline"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this storage pool.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the storage pool.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "guid": {"description": "Globally unique identifier (GUID) for this pool.", "title": "guid", "type": "string", "_name_": "guid", "_required_": false}, "status": {"description": "Current status of the pool.", "examples": ["ONLINE", "DEGRADED", "FAULTED"], "title": "status", "type": "string", "_name_": "status", "_required_": false}, "path": {"description": "Filesystem path where the pool is mounted.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "scan": {"anyOf": [{"examples": [{"bytes_issued": null, "bytes_processed": null, "bytes_to_process": null, "end_time": null, "errors": null, "function": null, "pause": null, "percentage": null, "start_time": null, "state": null, "total_secs_left": null}], "type": "object"}, {"type": "null"}], "description": "Information about any active scrub or resilver operation. `null` if no operation is running.", "title": "scan", "_name_": "scan", "_required_": false}, "expand": {"anyOf": [{"examples": [{"bytes_reflowed": 978944, "bytes_to_reflow": 835584, "end_time": null, "expanding_vdev": 0, "percentage": 85.35564853556485, "start_time": null, "state": "FINISHED", "total_secs_left": null, "waiting_for_resilver": 0}], "type": "object"}, {"type": "null"}], "description": "Information about any active pool expansion operation. `null` if no expansion is running.", "title": "expand", "_name_": "expand", "_required_": false}, "is_upgraded": {"description": "Whether this pool has been upgraded to the latest feature flags.", "title": "is_upgraded", "type": "boolean", "_name_": "is_upgraded", "_required_": false}, "healthy": {"description": "Whether the pool is in a healthy state with no errors or warnings.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": false}, "warning": {"description": "Whether the pool has warning conditions that require attention.", "title": "warning", "type": "boolean", "_name_": "warning", "_required_": false}, "status_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Detailed status code for the pool condition. `null` if not applicable.", "title": "status_code", "_name_": "status_code", "_required_": false}, "status_detail": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the pool status. `null` if not available.", "title": "status_detail", "_name_": "status_detail", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the pool in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": false}, "allocated": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space currently allocated in the pool in bytes. `null` if not available.", "title": "allocated", "_name_": "allocated", "_required_": false}, "free": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of free space available in the pool in bytes. `null` if not available.", "title": "free", "_name_": "free", "_required_": false}, "freeing": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space being freed (in bytes) by ongoing operations. `null` if not available.", "title": "freeing", "_name_": "freeing", "_required_": false}, "dedup_table_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the deduplication table in bytes. `null` if deduplication is not enabled.", "title": "dedup_table_size", "_name_": "dedup_table_size", "_required_": false}, "dedup_table_quota": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Quota limit for the deduplication table. `null` if no quota is set.", "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": false}, "fragmentation": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Percentage of pool fragmentation as a string. `null` if not available.", "title": "fragmentation", "_name_": "fragmentation", "_required_": false}, "size_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of the pool size. `null` if not available.", "title": "size_str", "_name_": "size_str", "_required_": false}, "allocated_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of allocated space. `null` if not available.", "title": "allocated_str", "_name_": "allocated_str", "_required_": false}, "free_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of free space. `null` if not available.", "title": "free_str", "_name_": "free_str", "_required_": false}, "freeing_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of space being freed. `null` if not available.", "title": "freeing_str", "_name_": "freeing_str", "_required_": false}, "autotrim": {"description": "Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.", "examples": [{"parsed": "off", "rawvalue": "off", "source": "DEFAULT", "value": "off"}], "title": "autotrim", "type": "object", "_name_": "autotrim", "_required_": false}, "topology": {"anyOf": [{"additionalProperties": false, "properties": {"data": {"description": "Array of data vdev configurations in the pool.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "log": {"description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{}], "title": "log", "type": "array", "_name_": "log", "_required_": true}, "cache": {"description": "Array of L2ARC cache vdev configurations.", "items": [{}], "title": "cache", "type": "array", "_name_": "cache", "_required_": true}, "spare": {"description": "Array of spare disk configurations.", "items": [{}], "title": "spare", "type": "array", "_name_": "spare", "_required_": true}, "special": {"description": "Array of special vdev configurations for metadata.", "items": [{}], "title": "special", "type": "array", "_name_": "special", "_required_": true}, "dedup": {"description": "Array of deduplication table vdev configurations.", "items": [{}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": true}}, "required": ["data", "log", "cache", "spare", "special", "dedup"], "title": "PoolTopology", "type": "object", "_attrs_order_": ["data", "log", "cache", "spare", "special", "dedup"]}, {"type": "null"}], "description": "Physical topology and structure of the pool including vdevs. `null` if not available.", "title": "topology", "_name_": "topology", "_required_": false}}, "title": "PoolQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "guid", "status", "path", "scan", "expand", "is_upgraded", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this storage pool.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name of the storage pool.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "guid": {"description": "Globally unique identifier (GUID) for this pool.", "title": "guid", "type": "string", "_name_": "guid", "_required_": false}, "status": {"description": "Current status of the pool.", "examples": ["ONLINE", "DEGRADED", "FAULTED"], "title": "status", "type": "string", "_name_": "status", "_required_": false}, "path": {"description": "Filesystem path where the pool is mounted.", "title": "path", "type": "string", "_name_": "path", "_required_": false}, "scan": {"anyOf": [{"examples": [{"bytes_issued": null, "bytes_processed": null, "bytes_to_process": null, "end_time": null, "errors": null, "function": null, "pause": null, "percentage": null, "start_time": null, "state": null, "total_secs_left": null}], "type": "object"}, {"type": "null"}], "description": "Information about any active scrub or resilver operation. `null` if no operation is running.", "title": "scan", "_name_": "scan", "_required_": false}, "expand": {"anyOf": [{"examples": [{"bytes_reflowed": 978944, "bytes_to_reflow": 835584, "end_time": null, "expanding_vdev": 0, "percentage": 85.35564853556485, "start_time": null, "state": "FINISHED", "total_secs_left": null, "waiting_for_resilver": 0}], "type": "object"}, {"type": "null"}], "description": "Information about any active pool expansion operation. `null` if no expansion is running.", "title": "expand", "_name_": "expand", "_required_": false}, "is_upgraded": {"description": "Whether this pool has been upgraded to the latest feature flags.", "title": "is_upgraded", "type": "boolean", "_name_": "is_upgraded", "_required_": false}, "healthy": {"description": "Whether the pool is in a healthy state with no errors or warnings.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": false}, "warning": {"description": "Whether the pool has warning conditions that require attention.", "title": "warning", "type": "boolean", "_name_": "warning", "_required_": false}, "status_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Detailed status code for the pool condition. `null` if not applicable.", "title": "status_code", "_name_": "status_code", "_required_": false}, "status_detail": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the pool status. `null` if not available.", "title": "status_detail", "_name_": "status_detail", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the pool in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": false}, "allocated": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space currently allocated in the pool in bytes. `null` if not available.", "title": "allocated", "_name_": "allocated", "_required_": false}, "free": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of free space available in the pool in bytes. `null` if not available.", "title": "free", "_name_": "free", "_required_": false}, "freeing": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space being freed (in bytes) by ongoing operations. `null` if not available.", "title": "freeing", "_name_": "freeing", "_required_": false}, "dedup_table_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the deduplication table in bytes. `null` if deduplication is not enabled.", "title": "dedup_table_size", "_name_": "dedup_table_size", "_required_": false}, "dedup_table_quota": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Quota limit for the deduplication table. `null` if no quota is set.", "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": false}, "fragmentation": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Percentage of pool fragmentation as a string. `null` if not available.", "title": "fragmentation", "_name_": "fragmentation", "_required_": false}, "size_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of the pool size. `null` if not available.", "title": "size_str", "_name_": "size_str", "_required_": false}, "allocated_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of allocated space. `null` if not available.", "title": "allocated_str", "_name_": "allocated_str", "_required_": false}, "free_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of free space. `null` if not available.", "title": "free_str", "_name_": "free_str", "_required_": false}, "freeing_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of space being freed. `null` if not available.", "title": "freeing_str", "_name_": "freeing_str", "_required_": false}, "autotrim": {"description": "Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.", "examples": [{"parsed": "off", "rawvalue": "off", "source": "DEFAULT", "value": "off"}], "title": "autotrim", "type": "object", "_name_": "autotrim", "_required_": false}, "topology": {"anyOf": [{}, {"type": "null"}], "description": "Physical topology and structure of the pool including vdevs. `null` if not available.", "title": "topology", "_name_": "topology", "_required_": false}}, "title": "PoolQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "guid", "status", "path", "scan", "expand", "is_upgraded", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "pool.remove": {"description": "Remove a disk from pool of id `id`.\n\n`label` is the vdev guid or device name.\n\nError codes:\n\n EZFS_NOSPC(2032): out of space to remove a device\n EZFS_NODEVICE(2017): no such device in pool\n EZFS_NOREPLICAS(2019): no valid replicas\n\n", "cli_description": "Remove a disk from pool of id `id`", "examples": {"websocket": ["\n\n Remove ZFS device.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.remove,\n \"params\": [1, {\n \"label\": \"80802394992848654\"\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to remove a disk from.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"label": {"description": "The vdev guid or device name.", "title": "label", "type": "string", "_name_": "label", "_required_": true}}, "required": ["label"], "title": "options", "type": "object", "description": "Disk identifier to remove from the pool.", "_name_": "options", "_required_": true, "_attrs_order_": ["label"]}], "returns": [{"description": "Returns `null` on successful disk removal.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.replace": {"description": "Replace a disk on a pool.\n\n`label` is the ZFS guid or a device name\n`disk` is the identifier of a disk\nIf `preserve_settings` is true, then settings (power management, S.M.A.R.T., etc.) of a disk being replaced\nwill be applied to a new disk.\n\n", "cli_description": "Replace a disk on a pool", "examples": {"websocket": ["\n\n Replace missing ZFS device with disk {serial}FOO.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.replace\",\n \"params\": [1, {\n \"label\": \"80802394992848654\",\n \"disk\": \"{serial}FOO\"\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to replace a disk in.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"label": {"description": "GUID or device name of the disk to replace.", "title": "label", "type": "string", "_name_": "label", "_required_": true}, "disk": {"description": "Name of the new disk to use as replacement.", "title": "disk", "type": "string", "_name_": "disk", "_required_": true}, "force": {"default": false, "description": "Force the replacement even if the new disk appears to be in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "preserve_settings": {"default": true, "description": "Whether to preserve disk settings from the replaced disk.", "title": "preserve_settings", "type": "boolean", "_name_": "preserve_settings", "_required_": false}, "preserve_description": {"default": true, "description": "Whether to preserve the description from the replaced disk.", "title": "preserve_description", "type": "boolean", "_name_": "preserve_description", "_required_": false}}, "required": ["label", "disk"], "title": "options", "type": "object", "description": "Configuration for the disk replacement operation.", "_name_": "options", "_required_": true, "_attrs_order_": ["label", "disk", "force", "preserve_settings", "preserve_description"]}], "returns": [{"const": true, "description": "Indicates successful disk replacement initiation.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.scrub": {"description": "Performs a scrub action to pool of `id`.\n\n`action` can be either of \"START\", \"STOP\" or \"PAUSE\".\n\n", "cli_description": "Performs a scrub action to pool of `id`", "examples": {"websocket": ["\n\n Start scrub on pool of id 1.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.scrub\",\n \"params\": [1, \"START\"]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to perform scrub action on.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"description": "The scrub action to perform.", "enum": ["START", "STOP", "PAUSE"], "title": "action", "type": "string", "_name_": "action", "_required_": true}], "returns": [{"description": "Returns `null` on successful scrub action.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.update": {"description": "Update pool of `id`, adding the new topology.\n\n", "cli_description": "Update pool of `id`, adding the new topology", "examples": {"websocket": ["\n\n Add a new set of raidz1 to pool of id 1.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.update\",\n \"params\": [1, {\n \"topology\": {\n \"data\": [\n {\"type\": \"RAIDZ1\", \"disks\": [\"da7\", \"da8\", \"da9\"]}\n ]\n }\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"dedup_table_quota": {"description": "How to manage the deduplication table quota allocation.", "enum": ["AUTO", "CUSTOM", null], "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": false}, "dedup_table_quota_value": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "description": "Custom quota value in bytes when `dedup_table_quota` is set to CUSTOM.", "title": "dedup_table_quota_value", "_name_": "dedup_table_quota_value", "_required_": false}, "topology": {"additionalProperties": false, "description": "Updated topology configuration for adding new vdevs to the pool.", "properties": {"data": {"description": "All vdevs must be of the same `type`.", "items": [{"discriminator": {"mapping": {"DRAID1": "#/$defs/PoolCreateTopologyDataVdevDRAID", "DRAID2": "#/$defs/PoolCreateTopologyDataVdevDRAID", "DRAID3": "#/$defs/PoolCreateTopologyDataVdevDRAID", "MIRROR": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "RAIDZ1": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "RAIDZ2": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "RAIDZ3": "#/$defs/PoolCreateTopologyDataVdevNonDRAID", "STRIPE": "#/$defs/PoolCreateTopologyDataVdevNonDRAID"}, "propertyName": "type"}, "oneOf": [{"additionalProperties": false, "properties": {"type": {"description": "Type of distributed RAID configuration.", "enum": ["DRAID1", "DRAID2", "DRAID3"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this DRAID vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}, "draid_data_disks": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Defaults to `zfs.VDEV_DRAID_MAX_CHILDREN`.", "title": "draid_data_disks", "_name_": "draid_data_disks", "_required_": false}, "draid_spare_disks": {"default": 0, "description": "Number of distributed spare disks in the DRAID configuration.", "title": "draid_spare_disks", "type": "integer", "_name_": "draid_spare_disks", "_required_": false}}, "required": ["type", "disks"], "title": "PoolCreateTopologyDataVdevDRAID", "type": "object", "_attrs_order_": ["type", "disks", "draid_data_disks", "draid_spare_disks"]}, {"additionalProperties": false, "properties": {"type": {"description": "Type of vdev configuration.", "enum": ["RAIDZ1", "RAIDZ2", "RAIDZ3", "MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyDataVdevNonDRAID", "type": "object", "_attrs_order_": ["type", "disks"]}]}], "title": "data", "type": "array", "_name_": "data", "_required_": false}, "special": {"description": "Array of special vdev configurations for metadata storage.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of special vdev configuration for metadata storage.", "enum": ["MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this special vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologySpecialVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "special", "type": "array", "_name_": "special", "_required_": false}, "dedup": {"description": "Array of deduplication table vdev configurations.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of deduplication table vdev configuration.", "enum": ["MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this dedup vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyDedupVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": false}, "cache": {"description": "Array of L2ARC cache vdev configurations.", "items": [{"additionalProperties": false, "properties": {"type": {"const": "STRIPE", "description": "Type of L2ARC cache vdev configuration (always stripe).", "enum": ["STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this cache vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyCacheVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "cache", "type": "array", "_name_": "cache", "_required_": false}, "log": {"description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of ZFS Intent Log (ZIL) vdev configuration.", "enum": ["MIRROR", "STRIPE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "disks": {"description": "Array of disk names to use in this log vdev.", "items": [{"type": "string"}], "title": "disks", "type": "array", "_name_": "disks", "_required_": true}}, "required": ["type", "disks"], "title": "PoolCreateTopologyLogVdev", "type": "object", "_attrs_order_": ["type", "disks"]}], "title": "log", "type": "array", "_name_": "log", "_required_": false}, "spares": {"description": "Array of spare disk names for the pool.", "items": [{"type": "string"}], "title": "spares", "type": "array", "_name_": "spares", "_required_": false}}, "title": "topology", "type": "object", "_name_": "topology", "_required_": false, "_attrs_order_": ["data", "special", "dedup", "cache", "log", "spares"]}, "allow_duplicate_serials": {"description": "Whether to allow disks with duplicate serial numbers in the pool.", "title": "allow_duplicate_serials", "type": "boolean", "_name_": "allow_duplicate_serials", "_required_": false}, "autotrim": {"description": "Whether to enable automatic TRIM operations on the pool.", "enum": ["ON", "OFF"], "title": "autotrim", "type": "string", "_name_": "autotrim", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for the pool.", "_name_": "data", "_required_": true, "_attrs_order_": ["dedup_table_quota", "dedup_table_quota_value", "topology", "allow_duplicate_serials", "autotrim"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this storage pool.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name of the storage pool.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "guid": {"description": "Globally unique identifier (GUID) for this pool.", "title": "guid", "type": "string", "_name_": "guid", "_required_": true}, "status": {"description": "Current status of the pool.", "examples": ["ONLINE", "DEGRADED", "FAULTED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "path": {"description": "Filesystem path where the pool is mounted.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "scan": {"anyOf": [{"examples": [{"bytes_issued": null, "bytes_processed": null, "bytes_to_process": null, "end_time": null, "errors": null, "function": null, "pause": null, "percentage": null, "start_time": null, "state": null, "total_secs_left": null}], "type": "object"}, {"type": "null"}], "description": "Information about any active scrub or resilver operation. `null` if no operation is running.", "title": "scan", "_name_": "scan", "_required_": true}, "expand": {"anyOf": [{"examples": [{"bytes_reflowed": 978944, "bytes_to_reflow": 835584, "end_time": null, "expanding_vdev": 0, "percentage": 85.35564853556485, "start_time": null, "state": "FINISHED", "total_secs_left": null, "waiting_for_resilver": 0}], "type": "object"}, {"type": "null"}], "description": "Information about any active pool expansion operation. `null` if no expansion is running.", "title": "expand", "_name_": "expand", "_required_": true}, "is_upgraded": {"default": false, "description": "Whether this pool has been upgraded to the latest feature flags.", "title": "is_upgraded", "type": "boolean", "_name_": "is_upgraded", "_required_": false}, "healthy": {"description": "Whether the pool is in a healthy state with no errors or warnings.", "title": "healthy", "type": "boolean", "_name_": "healthy", "_required_": true}, "warning": {"description": "Whether the pool has warning conditions that require attention.", "title": "warning", "type": "boolean", "_name_": "warning", "_required_": true}, "status_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Detailed status code for the pool condition. `null` if not applicable.", "title": "status_code", "_name_": "status_code", "_required_": true}, "status_detail": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the pool status. `null` if not available.", "title": "status_detail", "_name_": "status_detail", "_required_": true}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Total size of the pool in bytes. `null` if not available.", "title": "size", "_name_": "size", "_required_": true}, "allocated": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space currently allocated in the pool in bytes. `null` if not available.", "title": "allocated", "_name_": "allocated", "_required_": true}, "free": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of free space available in the pool in bytes. `null` if not available.", "title": "free", "_name_": "free", "_required_": true}, "freeing": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Amount of space being freed (in bytes) by ongoing operations. `null` if not available.", "title": "freeing", "_name_": "freeing", "_required_": true}, "dedup_table_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the deduplication table in bytes. `null` if deduplication is not enabled.", "title": "dedup_table_size", "_name_": "dedup_table_size", "_required_": true}, "dedup_table_quota": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Quota limit for the deduplication table. `null` if no quota is set.", "title": "dedup_table_quota", "_name_": "dedup_table_quota", "_required_": true}, "fragmentation": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Percentage of pool fragmentation as a string. `null` if not available.", "title": "fragmentation", "_name_": "fragmentation", "_required_": true}, "size_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of the pool size. `null` if not available.", "title": "size_str", "_name_": "size_str", "_required_": true}, "allocated_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of allocated space. `null` if not available.", "title": "allocated_str", "_name_": "allocated_str", "_required_": true}, "free_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of free space. `null` if not available.", "title": "free_str", "_name_": "free_str", "_required_": true}, "freeing_str": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable string representation of space being freed. `null` if not available.", "title": "freeing_str", "_name_": "freeing_str", "_required_": true}, "autotrim": {"description": "Auto-trim configuration for the pool indicating whether automatic TRIM operations are enabled.", "examples": [{"parsed": "off", "rawvalue": "off", "source": "DEFAULT", "value": "off"}], "title": "autotrim", "type": "object", "_name_": "autotrim", "_required_": true}, "topology": {"anyOf": [{"additionalProperties": false, "properties": {"data": {"description": "Array of data vdev configurations in the pool.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "log": {"description": "Array of ZFS Intent Log (ZIL) vdev configurations.", "items": [{}], "title": "log", "type": "array", "_name_": "log", "_required_": true}, "cache": {"description": "Array of L2ARC cache vdev configurations.", "items": [{}], "title": "cache", "type": "array", "_name_": "cache", "_required_": true}, "spare": {"description": "Array of spare disk configurations.", "items": [{}], "title": "spare", "type": "array", "_name_": "spare", "_required_": true}, "special": {"description": "Array of special vdev configurations for metadata.", "items": [{}], "title": "special", "type": "array", "_name_": "special", "_required_": true}, "dedup": {"description": "Array of deduplication table vdev configurations.", "items": [{}], "title": "dedup", "type": "array", "_name_": "dedup", "_required_": true}}, "required": ["data", "log", "cache", "spare", "special", "dedup"], "title": "PoolTopology", "type": "object", "_attrs_order_": ["data", "log", "cache", "spare", "special", "dedup"]}, {"type": "null"}], "description": "Physical topology and structure of the pool including vdevs. `null` if not available.", "title": "topology", "_name_": "topology", "_required_": true}}, "required": ["id", "name", "guid", "status", "path", "scan", "expand", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"], "title": "result", "type": "object", "description": "The updated pool configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "guid", "status", "path", "scan", "expand", "is_upgraded", "healthy", "warning", "status_code", "status_detail", "size", "allocated", "free", "freeing", "dedup_table_size", "dedup_table_quota", "fragmentation", "size_str", "allocated_str", "free_str", "freeing_str", "autotrim", "topology"]}]}, "pool.upgrade": {"description": "Upgrade pool of `id` to latest version with all feature flags.\n\n", "cli_description": "Upgrade pool of `id` to latest version with all feature flags", "examples": {"websocket": ["\n\n Upgrade pool of id 1.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.upgrade\",\n \"params\": [1]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE"], "accepts": [{"description": "ID of the pool to upgrade to the latest feature flags.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Indicates successful pool upgrade.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.validate_name": {"description": "Validates `pool_name` is a valid name for a pool.", "cli_description": "Validates `pool_name` is a valid name for a pool", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "Pool name to validate for compliance with naming rules.", "maxLength": 50, "minLength": 1, "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": true}], "returns": [{"const": true, "description": "Indicates the pool name is valid.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.dataset.attachments": {"description": "Return a list of services dependent of this dataset.\n\nResponsible for telling the user whether there is a related\nshare, asking for confirmation.\n\nExample return value:\n[\n {\n \"type\": \"NFS Share\",\n \"service\": \"nfs\",\n \"attachments\": [\"/mnt/tank/work\"]\n }\n]", "cli_description": "Return a list of services dependent of this dataset", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to retrieve attachments for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of services and resources attached to the dataset.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of attachment.", "title": "type", "type": "string", "_name_": "type", "_required_": true}, "service": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the service using this pool. `null` if not a service attachment.", "title": "service", "_name_": "service", "_required_": true}, "attachments": {"description": "Array of specific attachment identifiers or paths.", "items": [{"type": "string"}], "title": "attachments", "type": "array", "_name_": "attachments", "_required_": true}}, "required": ["type", "service", "attachments"], "title": "PoolAttachment", "type": "object", "_attrs_order_": ["type", "service", "attachments"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.change_key": {"description": "Change encryption properties for `id` encrypted dataset.\n\nChanging dataset encryption to use passphrase instead of a key is not allowed if:\n\n1) It has encrypted roots as children which are encrypted with a key\n2) If it is a root dataset where the system dataset is located", "cli_description": "Change encryption properties for `id` encrypted dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to change the encryption key for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"generate_key": {"default": false, "description": "Generate a new random encryption key instead of using a provided key or passphrase.", "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "key_file": {"default": false, "description": "Whether the provided key is from a key file rather than entered directly.", "title": "key_file", "type": "boolean", "_name_": "key_file", "_required_": false}, "pbkdf2iters": {"default": 350000, "description": "Number of PBKDF2 iterations for passphrase-based keys. Higher values improve security against brute force attacks but increase unlock time. Default 350,000 balances security and performance.", "minimum": 100000, "title": "pbkdf2iters", "type": "integer", "_name_": "pbkdf2iters", "_required_": false}, "passphrase": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Passphrase to use for encryption key derivation.", "title": "passphrase", "_name_": "passphrase", "_required_": false}, "key": {"anyOf": [{"maxLength": 64, "minLength": 64, "type": "string"}, {"type": "null"}], "default": null, "description": "Raw hex-encoded encryption key.", "title": "key", "_name_": "key", "_required_": false}}, "title": "options", "type": "object", "description": "Configuration options for changing the encryption key.", "_name_": "options", "_required_": false, "_attrs_order_": ["generate_key", "key_file", "pbkdf2iters", "passphrase", "key"]}], "returns": [{"description": "Returns `null` on successful key change.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.checksum_choices": {"description": "Retrieve checksums supported for ZFS dataset.", "cli_description": "Retrieve checksums supported for ZFS dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"ON": {"const": "ON", "enum": ["ON"], "title": "ON", "type": "string", "_name_": "ON", "_required_": true}, "FLETCHER2": {"const": "FLETCHER2", "enum": ["FLETCHER2"], "title": "FLETCHER2", "type": "string", "_name_": "FLETCHER2", "_required_": true}, "FLETCHER4": {"const": "FLETCHER4", "enum": ["FLETCHER4"], "title": "FLETCHER4", "type": "string", "_name_": "FLETCHER4", "_required_": true}, "SHA256": {"const": "SHA256", "enum": ["SHA256"], "title": "SHA256", "type": "string", "_name_": "SHA256", "_required_": true}, "SHA512": {"const": "SHA512", "enum": ["SHA512"], "title": "SHA512", "type": "string", "_name_": "SHA512", "_required_": true}, "SKEIN": {"const": "SKEIN", "enum": ["SKEIN"], "title": "SKEIN", "type": "string", "_name_": "SKEIN", "_required_": true}, "EDONR": {"const": "EDONR", "enum": ["EDONR"], "title": "EDONR", "type": "string", "_name_": "EDONR", "_required_": true}, "BLAKE3": {"const": "BLAKE3", "enum": ["BLAKE3"], "title": "BLAKE3", "type": "string", "_name_": "BLAKE3", "_required_": true}}, "required": ["ON", "FLETCHER2", "FLETCHER4", "SHA256", "SHA512", "SKEIN", "EDONR", "BLAKE3"], "title": "result", "type": "object", "description": "PoolDatasetChecksumChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["ON", "FLETCHER2", "FLETCHER4", "SHA256", "SHA512", "SKEIN", "EDONR", "BLAKE3"]}]}, "pool.dataset.compression_choices": {"description": "Retrieve compression algorithm supported by ZFS.", "cli_description": "Retrieve compression algorithm supported by ZFS", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping compression algorithm names to their descriptions.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "pool.dataset.create": {"description": "Creates a dataset/zvol.\n\n", "cli_description": "Creates a dataset/zvol", "examples": {"websocket": ["\n\n Create a dataset within tank pool.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.dataset.create,\n \"params\": [{\n \"name\": \"tank/myuser\",\n \"comments\": \"Dataset for myuser\"\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"additionalProperties": false, "properties": {"name": {"description": "The name of the dataset to create.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "comments": {"default": "INHERIT", "description": "Comments or description for the dataset.", "title": "comments", "type": "string", "_name_": "comments", "_required_": false}, "sync": {"default": "INHERIT", "description": "Synchronous write behavior for the dataset.", "enum": ["STANDARD", "ALWAYS", "DISABLED", "INHERIT"], "title": "sync", "type": "string", "_name_": "sync", "_required_": false}, "snapdev": {"description": "Controls visibility of volume snapshots under /dev/zvol/.", "enum": ["HIDDEN", "VISIBLE", "INHERIT"], "title": "snapdev", "type": "string", "_name_": "snapdev", "_required_": false}, "compression": {"default": "INHERIT", "description": "Compression algorithm to use for the dataset. Higher numbered variants provide better compression but use more CPU. 'INHERIT' uses the parent dataset's setting.", "enum": ["ON", "OFF", "LZ4", "GZIP", "GZIP-1", "GZIP-9", "ZSTD", "ZSTD-FAST", "ZLE", "LZJB", "ZSTD-1", "ZSTD-2", "ZSTD-3", "ZSTD-4", "ZSTD-5", "ZSTD-6", "ZSTD-7", "ZSTD-8", "ZSTD-9", "ZSTD-10", "ZSTD-11", "ZSTD-12", "ZSTD-13", "ZSTD-14", "ZSTD-15", "ZSTD-16", "ZSTD-17", "ZSTD-18", "ZSTD-19", "ZSTD-FAST-1", "ZSTD-FAST-2", "ZSTD-FAST-3", "ZSTD-FAST-4", "ZSTD-FAST-5", "ZSTD-FAST-6", "ZSTD-FAST-7", "ZSTD-FAST-8", "ZSTD-FAST-9", "ZSTD-FAST-10", "ZSTD-FAST-20", "ZSTD-FAST-30", "ZSTD-FAST-40", "ZSTD-FAST-50", "ZSTD-FAST-60", "ZSTD-FAST-70", "ZSTD-FAST-80", "ZSTD-FAST-90", "ZSTD-FAST-100", "ZSTD-FAST-500", "ZSTD-FAST-1000", "INHERIT"], "title": "compression", "type": "string", "_name_": "compression", "_required_": false}, "exec": {"default": "INHERIT", "description": "Whether files in this dataset can be executed.", "enum": ["ON", "OFF", "INHERIT"], "title": "exec", "type": "string", "_name_": "exec", "_required_": false}, "managedby": {"default": "INHERIT", "description": "Identifies which service or system manages this dataset.", "minLength": 1, "title": "managedby", "type": "string", "_name_": "managedby", "_required_": false}, "quota_warning": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of dataset quota at which to issue a warning. 0-100 or 'INHERIT'.", "title": "quota_warning", "_name_": "quota_warning", "_required_": false}, "quota_critical": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of dataset quota at which to issue a critical alert. 0-100 or 'INHERIT'.", "title": "quota_critical", "_name_": "quota_critical", "_required_": false}, "refquota_warning": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of reference quota at which to issue a warning. 0-100 or 'INHERIT'.", "title": "refquota_warning", "_name_": "refquota_warning", "_required_": false}, "refquota_critical": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of reference quota at which to issue a critical alert. 0-100 or 'INHERIT'.", "title": "refquota_critical", "_name_": "refquota_critical", "_required_": false}, "reservation": {"description": "Minimum disk space guaranteed to this dataset and its children in bytes.", "title": "reservation", "type": "integer", "_name_": "reservation", "_required_": false}, "refreservation": {"description": "Minimum disk space guaranteed to this dataset itself in bytes.", "title": "refreservation", "type": "integer", "_name_": "refreservation", "_required_": false}, "special_small_block_size": {"anyOf": [{"type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Size threshold below which blocks are stored on special vdevs.", "title": "special_small_block_size", "_name_": "special_small_block_size", "_required_": false}, "copies": {"anyOf": [{"type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Number of copies of data blocks to maintain for redundancy.", "title": "copies", "_name_": "copies", "_required_": false}, "snapdir": {"default": "INHERIT", "description": "Controls visibility of the `.zfs/snapshot` directory. 'DISABLED' hides snapshots, 'VISIBLE' shows them, 'HIDDEN' makes them accessible but not listed.", "enum": ["DISABLED", "VISIBLE", "HIDDEN", "INHERIT"], "title": "snapdir", "type": "string", "_name_": "snapdir", "_required_": false}, "deduplication": {"default": "INHERIT", "description": "Deduplication setting. 'ON' enables dedup, 'VERIFY' enables with checksum verification, 'OFF' disables.", "enum": ["ON", "VERIFY", "OFF", "INHERIT"], "title": "deduplication", "type": "string", "_name_": "deduplication", "_required_": false}, "checksum": {"default": "INHERIT", "description": "Checksum algorithm to verify data integrity. Higher security algorithms like SHA256 provide better protection but use more CPU.", "enum": ["ON", "OFF", "FLETCHER2", "FLETCHER4", "SHA256", "SHA512", "SKEIN", "EDONR", "BLAKE3", "INHERIT"], "title": "checksum", "type": "string", "_name_": "checksum", "_required_": false}, "readonly": {"default": "INHERIT", "description": "Whether the dataset is read-only.", "enum": ["ON", "OFF", "INHERIT"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "share_type": {"default": "GENERIC", "description": "Optimization type for the dataset based on its intended use.", "enum": ["GENERIC", "MULTIPROTOCOL", "NFS", "SMB", "APPS"], "title": "share_type", "type": "string", "_name_": "share_type", "_required_": false}, "encryption_options": {"additionalProperties": false, "description": "Configuration for encryption of dataset for `name` pool.", "properties": {"generate_key": {"default": false, "description": "Automatically generate the key to be used for dataset encryption.", "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "pbkdf2iters": {"default": 350000, "description": "Number of PBKDF2 iterations for key derivation from passphrase. Higher iterations improve security against brute force attacks but increase unlock time. Default 350,000 balances security and performance.", "minimum": 100000, "title": "pbkdf2iters", "type": "integer", "_name_": "pbkdf2iters", "_required_": false}, "algorithm": {"default": "AES-256-GCM", "description": "Encryption algorithm to use for dataset encryption.", "enum": ["AES-128-CCM", "AES-192-CCM", "AES-256-CCM", "AES-128-GCM", "AES-192-GCM", "AES-256-GCM"], "title": "algorithm", "type": "string", "_name_": "algorithm", "_required_": false}, "passphrase": {"anyOf": [{"minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "description": "Must be specified if encryption for root dataset is desired with a passphrase as a key.", "title": "passphrase", "_name_": "passphrase", "_required_": false}, "key": {"anyOf": [{"maxLength": 64, "minLength": 64, "type": "string"}, {"type": "null"}], "default": null, "description": "A hex-encoded key specified as an alternative to using `passphrase`.", "title": "key", "_name_": "key", "_required_": false}}, "title": "encryption_options", "type": "object", "_name_": "encryption_options", "_required_": false, "_attrs_order_": ["generate_key", "pbkdf2iters", "algorithm", "passphrase", "key"]}, "encryption": {"default": false, "description": "Create a ZFS encrypted root dataset for `name` pool.\nThere is 1 case where ZFS encryption is not allowed for a dataset:\n1) If the parent dataset is encrypted with a passphrase and `name` is being created with a key for encrypting the dataset.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "inherit_encryption": {"default": true, "description": "Whether to inherit encryption settings from the parent dataset.", "title": "inherit_encryption", "type": "boolean", "_name_": "inherit_encryption", "_required_": false}, "user_properties": {"default": [], "description": "Custom user-defined properties to set on the dataset.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "User property key in namespace:property format.", "examples": ["custom:backup_policy", "org:created_by"], "pattern": ".*:.*", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "value": {"description": "The value to assign to the user property.", "title": "value", "type": "string", "_name_": "value", "_required_": true}}, "required": ["key", "value"], "title": "PoolDatasetCreateUserProperty", "type": "object", "_attrs_order_": ["key", "value"]}], "title": "user_properties", "type": "array", "_name_": "user_properties", "_required_": false}, "create_ancestors": {"default": false, "description": "Whether to create any missing parent datasets.", "title": "create_ancestors", "type": "boolean", "_name_": "create_ancestors", "_required_": false}, "type": {"const": "FILESYSTEM", "default": "FILESYSTEM", "description": "Type of dataset to create - filesystem.", "enum": ["FILESYSTEM"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "aclmode": {"description": "How Access Control Lists are handled when chmod is used.", "enum": ["PASSTHROUGH", "RESTRICTED", "DISCARD", "INHERIT"], "title": "aclmode", "type": "string", "_name_": "aclmode", "_required_": false}, "acltype": {"description": "The type of Access Control List system to use.", "enum": ["OFF", "NFSV4", "POSIX", "INHERIT"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": false}, "atime": {"description": "Whether file access times are updated when files are accessed.", "enum": ["ON", "OFF", "INHERIT"], "title": "atime", "type": "string", "_name_": "atime", "_required_": false}, "casesensitivity": {"description": "File name case sensitivity setting.", "enum": ["SENSITIVE", "INSENSITIVE", "INHERIT"], "title": "casesensitivity", "type": "string", "_name_": "casesensitivity", "_required_": false}, "quota": {"anyOf": [{"minimum": 1073741824, "type": "integer"}, {"enum": [0, null]}], "description": "Maximum disk space this dataset and its children can consume in bytes.", "title": "quota", "_name_": "quota", "_required_": false}, "refquota": {"anyOf": [{"minimum": 1073741824, "type": "integer"}, {"enum": [0, null]}], "description": "Maximum disk space this dataset itself can consume in bytes.", "title": "refquota", "_name_": "refquota", "_required_": false}, "recordsize": {"description": "The suggested block size for files in this filesystem dataset.", "title": "recordsize", "type": "string", "_name_": "recordsize", "_required_": false}}, "required": ["name"], "title": "PoolDatasetCreateFilesystem", "type": "object", "_attrs_order_": ["name", "comments", "sync", "snapdev", "compression", "exec", "managedby", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "reservation", "refreservation", "special_small_block_size", "copies", "snapdir", "deduplication", "checksum", "readonly", "share_type", "encryption_options", "encryption", "inherit_encryption", "user_properties", "create_ancestors", "type", "aclmode", "acltype", "atime", "casesensitivity", "quota", "refquota", "recordsize"]}, {"additionalProperties": false, "properties": {"name": {"description": "The name of the dataset to create.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "comments": {"default": "INHERIT", "description": "Comments or description for the dataset.", "title": "comments", "type": "string", "_name_": "comments", "_required_": false}, "sync": {"default": "INHERIT", "description": "Synchronous write behavior for the dataset.", "enum": ["STANDARD", "ALWAYS", "DISABLED", "INHERIT"], "title": "sync", "type": "string", "_name_": "sync", "_required_": false}, "snapdev": {"description": "Controls visibility of volume snapshots under /dev/zvol/.", "enum": ["HIDDEN", "VISIBLE", "INHERIT"], "title": "snapdev", "type": "string", "_name_": "snapdev", "_required_": false}, "compression": {"default": "INHERIT", "description": "Compression algorithm to use for the dataset. Higher numbered variants provide better compression but use more CPU. 'INHERIT' uses the parent dataset's setting.", "enum": ["ON", "OFF", "LZ4", "GZIP", "GZIP-1", "GZIP-9", "ZSTD", "ZSTD-FAST", "ZLE", "LZJB", "ZSTD-1", "ZSTD-2", "ZSTD-3", "ZSTD-4", "ZSTD-5", "ZSTD-6", "ZSTD-7", "ZSTD-8", "ZSTD-9", "ZSTD-10", "ZSTD-11", "ZSTD-12", "ZSTD-13", "ZSTD-14", "ZSTD-15", "ZSTD-16", "ZSTD-17", "ZSTD-18", "ZSTD-19", "ZSTD-FAST-1", "ZSTD-FAST-2", "ZSTD-FAST-3", "ZSTD-FAST-4", "ZSTD-FAST-5", "ZSTD-FAST-6", "ZSTD-FAST-7", "ZSTD-FAST-8", "ZSTD-FAST-9", "ZSTD-FAST-10", "ZSTD-FAST-20", "ZSTD-FAST-30", "ZSTD-FAST-40", "ZSTD-FAST-50", "ZSTD-FAST-60", "ZSTD-FAST-70", "ZSTD-FAST-80", "ZSTD-FAST-90", "ZSTD-FAST-100", "ZSTD-FAST-500", "ZSTD-FAST-1000", "INHERIT"], "title": "compression", "type": "string", "_name_": "compression", "_required_": false}, "exec": {"default": "INHERIT", "description": "Whether files in this dataset can be executed.", "enum": ["ON", "OFF", "INHERIT"], "title": "exec", "type": "string", "_name_": "exec", "_required_": false}, "managedby": {"default": "INHERIT", "description": "Identifies which service or system manages this dataset.", "minLength": 1, "title": "managedby", "type": "string", "_name_": "managedby", "_required_": false}, "quota_warning": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of dataset quota at which to issue a warning. 0-100 or 'INHERIT'.", "title": "quota_warning", "_name_": "quota_warning", "_required_": false}, "quota_critical": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of dataset quota at which to issue a critical alert. 0-100 or 'INHERIT'.", "title": "quota_critical", "_name_": "quota_critical", "_required_": false}, "refquota_warning": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of reference quota at which to issue a warning. 0-100 or 'INHERIT'.", "title": "refquota_warning", "_name_": "refquota_warning", "_required_": false}, "refquota_critical": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Percentage of reference quota at which to issue a critical alert. 0-100 or 'INHERIT'.", "title": "refquota_critical", "_name_": "refquota_critical", "_required_": false}, "reservation": {"description": "Minimum disk space guaranteed to this dataset and its children in bytes.", "title": "reservation", "type": "integer", "_name_": "reservation", "_required_": false}, "refreservation": {"description": "Minimum disk space guaranteed to this dataset itself in bytes.", "title": "refreservation", "type": "integer", "_name_": "refreservation", "_required_": false}, "special_small_block_size": {"anyOf": [{"type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Size threshold below which blocks are stored on special vdevs.", "title": "special_small_block_size", "_name_": "special_small_block_size", "_required_": false}, "copies": {"anyOf": [{"type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "default": "INHERIT", "description": "Number of copies of data blocks to maintain for redundancy.", "title": "copies", "_name_": "copies", "_required_": false}, "snapdir": {"default": "INHERIT", "description": "Controls visibility of the `.zfs/snapshot` directory. 'DISABLED' hides snapshots, 'VISIBLE' shows them, 'HIDDEN' makes them accessible but not listed.", "enum": ["DISABLED", "VISIBLE", "HIDDEN", "INHERIT"], "title": "snapdir", "type": "string", "_name_": "snapdir", "_required_": false}, "deduplication": {"default": "INHERIT", "description": "Deduplication setting. 'ON' enables dedup, 'VERIFY' enables with checksum verification, 'OFF' disables.", "enum": ["ON", "VERIFY", "OFF", "INHERIT"], "title": "deduplication", "type": "string", "_name_": "deduplication", "_required_": false}, "checksum": {"default": "INHERIT", "description": "Checksum algorithm to verify data integrity. Higher security algorithms like SHA256 provide better protection but use more CPU.", "enum": ["ON", "OFF", "FLETCHER2", "FLETCHER4", "SHA256", "SHA512", "SKEIN", "EDONR", "BLAKE3", "INHERIT"], "title": "checksum", "type": "string", "_name_": "checksum", "_required_": false}, "readonly": {"default": "INHERIT", "description": "Whether the dataset is read-only.", "enum": ["ON", "OFF", "INHERIT"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "share_type": {"default": "GENERIC", "description": "Optimization type for the dataset based on its intended use.", "enum": ["GENERIC", "MULTIPROTOCOL", "NFS", "SMB", "APPS"], "title": "share_type", "type": "string", "_name_": "share_type", "_required_": false}, "encryption_options": {"additionalProperties": false, "description": "Configuration for encryption of dataset for `name` pool.", "properties": {"generate_key": {"default": false, "description": "Automatically generate the key to be used for dataset encryption.", "title": "generate_key", "type": "boolean", "_name_": "generate_key", "_required_": false}, "pbkdf2iters": {"default": 350000, "description": "Number of PBKDF2 iterations for key derivation from passphrase. Higher iterations improve security against brute force attacks but increase unlock time. Default 350,000 balances security and performance.", "minimum": 100000, "title": "pbkdf2iters", "type": "integer", "_name_": "pbkdf2iters", "_required_": false}, "algorithm": {"default": "AES-256-GCM", "description": "Encryption algorithm to use for dataset encryption.", "enum": ["AES-128-CCM", "AES-192-CCM", "AES-256-CCM", "AES-128-GCM", "AES-192-GCM", "AES-256-GCM"], "title": "algorithm", "type": "string", "_name_": "algorithm", "_required_": false}, "passphrase": {"anyOf": [{"minLength": 8, "type": "string"}, {"type": "null"}], "default": null, "description": "Must be specified if encryption for root dataset is desired with a passphrase as a key.", "title": "passphrase", "_name_": "passphrase", "_required_": false}, "key": {"anyOf": [{"maxLength": 64, "minLength": 64, "type": "string"}, {"type": "null"}], "default": null, "description": "A hex-encoded key specified as an alternative to using `passphrase`.", "title": "key", "_name_": "key", "_required_": false}}, "title": "encryption_options", "type": "object", "_name_": "encryption_options", "_required_": false, "_attrs_order_": ["generate_key", "pbkdf2iters", "algorithm", "passphrase", "key"]}, "encryption": {"default": false, "description": "Create a ZFS encrypted root dataset for `name` pool.\nThere is 1 case where ZFS encryption is not allowed for a dataset:\n1) If the parent dataset is encrypted with a passphrase and `name` is being created with a key for encrypting the dataset.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "inherit_encryption": {"default": true, "description": "Whether to inherit encryption settings from the parent dataset.", "title": "inherit_encryption", "type": "boolean", "_name_": "inherit_encryption", "_required_": false}, "user_properties": {"default": [], "description": "Custom user-defined properties to set on the dataset.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "User property key in namespace:property format.", "examples": ["custom:backup_policy", "org:created_by"], "pattern": ".*:.*", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "value": {"description": "The value to assign to the user property.", "title": "value", "type": "string", "_name_": "value", "_required_": true}}, "required": ["key", "value"], "title": "PoolDatasetCreateUserProperty", "type": "object", "_attrs_order_": ["key", "value"]}], "title": "user_properties", "type": "array", "_name_": "user_properties", "_required_": false}, "create_ancestors": {"default": false, "description": "Whether to create any missing parent datasets.", "title": "create_ancestors", "type": "boolean", "_name_": "create_ancestors", "_required_": false}, "type": {"const": "VOLUME", "default": "VOLUME", "description": "Type of dataset to create - volume (zvol).", "enum": ["VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "force_size": {"description": "Force creation even if the size is not optimal.", "title": "force_size", "type": "boolean", "_name_": "force_size", "_required_": false}, "sparse": {"description": "Whether to use sparse (thin) provisioning for the volume.", "title": "sparse", "type": "boolean", "_name_": "sparse", "_required_": false}, "volsize": {"description": "The volume size in bytes; supposed to be a multiple of the block size.", "title": "volsize", "type": "integer", "_name_": "volsize", "_required_": true}, "volblocksize": {"description": "Defaults to `128K` if the parent pool is a DRAID pool or `16K` otherwise.", "enum": ["512", "512B", "1K", "2K", "4K", "8K", "16K", "32K", "64K", "128K"], "title": "volblocksize", "type": "string", "_name_": "volblocksize", "_required_": false}}, "required": ["name", "volsize"], "title": "PoolDatasetCreateVolume", "type": "object", "_attrs_order_": ["name", "comments", "sync", "snapdev", "compression", "exec", "managedby", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "reservation", "refreservation", "special_small_block_size", "copies", "snapdir", "deduplication", "checksum", "readonly", "share_type", "encryption_options", "encryption", "inherit_encryption", "user_properties", "create_ancestors", "type", "force_size", "sparse", "volsize", "volblocksize"]}], "description": "Configuration data for creating a new ZFS dataset.", "title": "data", "_name_": "data", "_required_": true}], "returns": [{"additionalProperties": true, "properties": {"id": {"description": "The full dataset path including pool name.", "examples": ["tank/dataset/child"], "title": "id", "type": "string", "_name_": "id", "_required_": false}, "type": {"description": "The dataset type.", "examples": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "name": {"description": "The dataset name without the pool prefix.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "pool": {"description": "The name of the ZFS pool containing this dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "encrypted": {"description": "Whether the dataset is encrypted.", "title": "encrypted", "type": "boolean", "_name_": "encrypted", "_required_": false}, "encryption_root": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The root dataset where encryption is enabled. `null` if the dataset is not encrypted.", "title": "encryption_root", "_name_": "encryption_root", "_required_": false}, "key_loaded": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the encryption key is currently loaded for encrypted datasets. `null` for unencrypted datasets.", "title": "key_loaded", "_name_": "key_loaded", "_required_": false}, "children": {"description": "Array of child dataset objects nested under this dataset.", "items": [{}], "title": "children", "type": "array", "_name_": "children", "_required_": false}, "user_properties": {"description": "Custom user-defined ZFS properties set on this dataset as key-value pairs.", "title": "user_properties", "type": "object", "_name_": "user_properties", "_required_": false}, "locked": {"description": "Whether an encrypted dataset is currently locked (key not loaded).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "comments": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "comments", "type": "object", "description": "ZFS comments property for storing descriptive text about the dataset.", "_name_": "comments", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_warning", "type": "object", "description": "ZFS quota warning threshold property as a percentage.", "_name_": "quota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_critical", "type": "object", "description": "ZFS quota critical threshold property as a percentage.", "_name_": "quota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_warning", "type": "object", "description": "ZFS reference quota warning threshold property as a percentage.", "_name_": "refquota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_critical", "type": "object", "description": "ZFS reference quota critical threshold property as a percentage.", "_name_": "refquota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "managedby": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "managedby", "type": "object", "description": "Identifies which service or system manages this dataset.", "_name_": "managedby", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "deduplication": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "deduplication", "type": "object", "description": "ZFS deduplication setting - whether identical data blocks are stored only once.", "_name_": "deduplication", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "aclmode": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "aclmode", "type": "object", "description": "How Access Control Lists (ACLs) are handled when chmod is used.", "_name_": "aclmode", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "acltype": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "acltype", "type": "object", "description": "The type of Access Control List system used (NFSV4, POSIX, or OFF).", "_name_": "acltype", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "xattr": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "xattr", "type": "object", "description": "Extended attributes storage method (on/off).", "_name_": "xattr", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "atime": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "atime", "type": "object", "description": "Whether file access times are updated when files are accessed.", "_name_": "atime", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "casesensitivity": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "casesensitivity", "type": "object", "description": "File name case sensitivity setting (sensitive/insensitive).", "_name_": "casesensitivity", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "checksum": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "checksum", "type": "object", "description": "Data integrity checksum algorithm used for this dataset.", "_name_": "checksum", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "exec": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "exec", "type": "object", "description": "Whether files in this dataset can be executed.", "_name_": "exec", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sync": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sync", "type": "object", "description": "Synchronous write behavior (standard/always/disabled).", "_name_": "sync", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compression": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compression", "type": "object", "description": "Compression algorithm and level applied to data in this dataset.", "_name_": "compression", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compressratio": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compressratio", "type": "object", "description": "The achieved compression ratio as a decimal (e.g., '2.50x').", "_name_": "compressratio", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "origin": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "origin", "type": "object", "description": "The snapshot from which this clone was created. Empty for non-clone datasets.", "_name_": "origin", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota", "type": "object", "description": "Maximum amount of disk space this dataset and its children can consume.", "_name_": "quota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota", "type": "object", "description": "Maximum amount of disk space this dataset itself can consume (excluding children).", "_name_": "refquota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "reservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "reservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset and its children.", "_name_": "reservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refreservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset itself.", "_name_": "refreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "copies": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "copies", "type": "object", "description": "Number of copies of data blocks to maintain for redundancy (1-3).", "_name_": "copies", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdir": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdir", "type": "object", "description": "Visibility of the .zfs/snapshot directory (visible/hidden).", "_name_": "snapdir", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "readonly": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "readonly", "type": "object", "description": "Whether the dataset is read-only.", "_name_": "readonly", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "recordsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "recordsize", "type": "object", "description": "The suggested block size for files in this filesystem dataset.", "_name_": "recordsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sparse": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sparse", "type": "object", "description": "For volumes, whether to use sparse (thin) provisioning.", "_name_": "sparse", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volsize", "type": "object", "description": "For volumes, the logical size of the volume.", "_name_": "volsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volblocksize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volblocksize", "type": "object", "description": "For volumes, the block size used by the volume.", "_name_": "volblocksize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "key_format": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "key_format", "type": "object", "description": "Format of the encryption key (hex/raw/passphrase). Only relevant for encrypted datasets.", "_name_": "key_format", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "encryption_algorithm": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "encryption_algorithm", "type": "object", "description": "Encryption algorithm used (e.g., AES-256-GCM). Only relevant for encrypted datasets.", "_name_": "encryption_algorithm", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "used": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "used", "type": "object", "description": "Total amount of disk space consumed by this dataset and all its children.", "_name_": "used", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbychildren": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbychildren", "type": "object", "description": "Amount of disk space consumed by child datasets.", "_name_": "usedbychildren", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbydataset": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbydataset", "type": "object", "description": "Amount of disk space consumed by this dataset itself, excluding children and snapshots.", "_name_": "usedbydataset", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbyrefreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbyrefreservation", "type": "object", "description": "Amount of disk space consumed by the refreservation of this dataset.", "_name_": "usedbyrefreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbysnapshots": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbysnapshots", "type": "object", "description": "Amount of disk space consumed by snapshots of this dataset.", "_name_": "usedbysnapshots", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "available": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "available", "type": "object", "description": "Amount of disk space available to this dataset and its children.", "_name_": "available", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "special_small_block_size": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "special_small_block_size", "type": "object", "description": "Size threshold below which blocks are stored on special vdevs if configured.", "_name_": "special_small_block_size", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "pbkdf2iters": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "pbkdf2iters", "type": "object", "description": "Number of PBKDF2 iterations used for passphrase-based encryption keys.", "_name_": "pbkdf2iters", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "creation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "creation", "type": "object", "description": "Timestamp when this dataset was created.", "_name_": "creation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdev": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdev", "type": "object", "description": "Controls visibility of volume snapshots under /dev/zvol//.", "_name_": "snapdev", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "mountpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where this dataset is mounted. Null for unmounted datasets or volumes.", "title": "mountpoint", "_name_": "mountpoint", "_required_": false}}, "title": "result", "type": "object", "description": "The newly created dataset information.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "type", "name", "pool", "encrypted", "encryption_root", "key_loaded", "children", "user_properties", "locked", "comments", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "managedby", "deduplication", "aclmode", "acltype", "xattr", "atime", "casesensitivity", "checksum", "exec", "sync", "compression", "compressratio", "origin", "quota", "refquota", "reservation", "refreservation", "copies", "snapdir", "readonly", "recordsize", "sparse", "volsize", "volblocksize", "key_format", "encryption_algorithm", "used", "usedbychildren", "usedbydataset", "usedbyrefreservation", "usedbysnapshots", "available", "special_small_block_size", "pbkdf2iters", "creation", "snapdev", "mountpoint"]}]}, "pool.dataset.delete": {"description": "Delete dataset/zvol `id`.\n\n", "cli_description": "Delete dataset/zvol `id`", "examples": {"websocket": ["\n\n Delete \"tank/myuser\" dataset.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.dataset.delete\",\n \"params\": [\"tank/myuser\"]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_DELETE"], "accepts": [{"description": "The dataset ID (full path) to delete.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"recursive": {"default": false, "description": "Also delete/destroy all children datasets. When root dataset is specified as `id` with `recursive`, it will destroy all the children of the root dataset present leaving root dataset intact.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "force": {"default": false, "description": "Delete datasets even if they are busy.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "options", "type": "object", "description": "Options controlling the deletion behavior such as recursive and force flags.", "_name_": "options", "_required_": false, "_attrs_order_": ["recursive", "force"]}], "returns": [{"description": "Return true on successful deletion or null if the `zfs destroy` command fails with \"dataset does not exist\".", "enum": [null, true], "title": "result", "_name_": "result", "_required_": true}]}, "pool.dataset.destroy_snapshots": {"description": "Destroy specified snapshots of a given dataset.", "cli_description": "Destroy specified snapshots of a given dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"description": "The dataset name to destroy snapshots for.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, {"additionalProperties": false, "properties": {"all": {"default": false, "description": "Whether to destroy all snapshots for the dataset.", "title": "all", "type": "boolean", "_name_": "all", "_required_": false}, "recursive": {"default": false, "description": "Whether to recursively destroy snapshots of child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "snapshots": {"default": [], "description": "Array of specific snapshot names or snapshot range specifications to destroy.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"start": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Starting snapshot name for the range. Null to start from the beginning.", "title": "start", "_name_": "start", "_required_": false}, "end": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Ending snapshot name for the range. Null to continue to the end.", "title": "end", "_name_": "end", "_required_": false}}, "title": "PoolDatasetDestroySnapshotsArgsSnapshotSpec", "type": "object", "_attrs_order_": ["start", "end"]}, {"type": "string"}]}], "title": "snapshots", "type": "array", "_name_": "snapshots", "_required_": false}}, "title": "snapshots", "type": "object", "description": "Specification of which snapshots to destroy (all, specific ones, or ranges).", "_name_": "snapshots", "_required_": true, "_attrs_order_": ["all", "recursive", "snapshots"]}], "returns": [{"description": "Array of snapshot names that were successfully destroyed.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.details": {"description": "Retrieve all dataset(s) details outlining any\nservices/tasks which might be consuming them.", "cli_description": "Retrieve all dataset(s) details outlining any services/tasks which might be consuming them", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of detailed dataset information objects.", "items": [{"type": "object"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.encryption_algorithm_choices": {"description": "Retrieve encryption algorithms supported for ZFS dataset encryption.", "cli_description": "Retrieve encryption algorithms supported for ZFS dataset encryption", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"AES-128-CCM": {"const": "AES-128-CCM", "enum": ["AES-128-CCM"], "title": "AES-128-CCM", "type": "string", "_name_": "AES-128-CCM", "_required_": true}, "AES-192-CCM": {"const": "AES-192-CCM", "enum": ["AES-192-CCM"], "title": "AES-192-CCM", "type": "string", "_name_": "AES-192-CCM", "_required_": true}, "AES-256-CCM": {"const": "AES-256-CCM", "enum": ["AES-256-CCM"], "title": "AES-256-CCM", "type": "string", "_name_": "AES-256-CCM", "_required_": true}, "AES-128-GCM": {"const": "AES-128-GCM", "enum": ["AES-128-GCM"], "title": "AES-128-GCM", "type": "string", "_name_": "AES-128-GCM", "_required_": true}, "AES-192-GCM": {"const": "AES-192-GCM", "enum": ["AES-192-GCM"], "title": "AES-192-GCM", "type": "string", "_name_": "AES-192-GCM", "_required_": true}, "AES-256-GCM": {"const": "AES-256-GCM", "enum": ["AES-256-GCM"], "title": "AES-256-GCM", "type": "string", "_name_": "AES-256-GCM", "_required_": true}}, "required": ["AES-128-CCM", "AES-192-CCM", "AES-256-CCM", "AES-128-GCM", "AES-192-GCM", "AES-256-GCM"], "title": "result", "type": "object", "description": "PoolDatasetEncryptionAlgorithmChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["AES-128-CCM", "AES-192-CCM", "AES-256-CCM", "AES-128-GCM", "AES-192-GCM", "AES-256-GCM"]}]}, "pool.dataset.encryption_summary": {"description": "Retrieve summary of all encrypted roots under `id`.\n\nKeys/passphrase can be supplied to check if the keys are valid.\n\nExample output:\n[\n {\n \"name\": \"vol\",\n \"key_format\": \"PASSPHRASE\",\n \"key_present_in_database\": false,\n \"valid_key\": true,\n \"locked\": true,\n \"unlock_error\": null,\n \"unlock_successful\": true\n },\n {\n \"name\": \"vol/c1/d1\",\n \"key_format\": \"PASSPHRASE\",\n \"key_present_in_database\": false,\n \"valid_key\": false,\n \"locked\": true,\n \"unlock_error\": \"Provided key is invalid\",\n \"unlock_successful\": false\n },\n {\n \"name\": \"vol/c\",\n \"key_format\": \"PASSPHRASE\",\n \"key_present_in_database\": false,\n \"valid_key\": false,\n \"locked\": true,\n \"unlock_error\": \"Key not provided\",\n \"unlock_successful\": false\n },\n {\n \"name\": \"vol/c/d2\",\n \"key_format\": \"PASSPHRASE\",\n \"key_present_in_database\": false,\n \"valid_key\": false,\n \"locked\": true,\n \"unlock_error\": \"Child cannot be unlocked when parent \"vol/c\" is locked and provided key is invalid\",\n \"unlock_successful\": false\n }\n]", "cli_description": "Retrieve summary of all encrypted roots under `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to generate an encryption summary for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"key_file": {"default": false, "description": "Whether keys are provided via key files rather than directly.", "title": "key_file", "type": "boolean", "_name_": "key_file", "_required_": false}, "force": {"default": false, "description": "Force unlock operations even if mount paths already exist.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "datasets": {"default": [], "description": "Array of dataset-specific unlock options and credential REDACTED, "items": [{"additionalProperties": false, "properties": {"force": {"default": false, "description": "Force unlock even if the mount path already exists and is not empty.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "name": {"description": "The dataset name to unlock.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "key": {"description": "Raw hex-encoded encryption key for this dataset.", "maxLength": 64, "minLength": 64, "title": "key", "type": "string", "_name_": "key", "_required_": false}, "passphrase": {"description": "Passphrase for this dataset if using passphrase-based encryption.", "minLength": 1, "title": "passphrase", "type": "string", "_name_": "passphrase", "_required_": false}}, "required": ["name"], "title": "PoolDatasetEncryptionSummaryOptionsDataset", "type": "object", "_attrs_order_": ["force", "name", "key", "passphrase"]}], "title": "datasets", "type": "array", "_name_": "datasets", "_required_": false}}, "title": "options", "type": "object", "description": "Options for generating the encryption summary including force settings and datasets.", "_name_": "options", "_required_": false, "_attrs_order_": ["key_file", "force", "datasets"]}], "returns": [{"description": "Array of encryption status information for datasets that would be affected by an unlock operation.", "items": [{"additionalProperties": false, "description": "There are 2 keys which show if a recursive unlock operation is done for `id`, which dataset will be unlocked and if not why it won't be unlocked. The keys namely are `unlock_successful` and `unlock_error`. The former is a boolean value showing if unlock would succeed/fail. The latter is description why it failed if it failed.\n\nIn some cases it's possible that the provided key/passphrase is valid but the path where the dataset is supposed to be mounted after being unlocked already exists and is not empty. In this case, unlock operation would fail and `unlock_error` will reflect this error appropriately. This can be overridden by setting `options.datasets.X.force` boolean flag or by setting `options.force` flag. In practice, when the dataset is going to be unlocked and these flags have been provided to `pool.dataset.unlock`, system will rename the directory/file path where the dataset should be mounted resulting in successful unlock of the dataset.\n\nIf a dataset is already unlocked, it will show up as true for \"unlock_successful\" regardless of what key user provided as the unlock keys in the output are to reflect what a real unlock operation would behave. If user is interested in seeing if a provided key is valid or not, then the key to look out for in the output is \"valid_key\" which based on what system has in database or if a user provided one, validates the key and sets a boolean value for the dataset.", "properties": {"name": {"description": "The dataset name.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "key_format": {"description": "The format of the encryption key (hex, raw, or passphrase).", "title": "key_format", "type": "string", "_name_": "key_format", "_required_": true}, "key_present_in_database": {"description": "Whether an encryption key for this dataset exists in the system database.", "title": "key_present_in_database", "type": "boolean", "_name_": "key_present_in_database", "_required_": true}, "valid_key": {"description": "Whether the provided key is valid for this dataset.", "title": "valid_key", "type": "boolean", "_name_": "valid_key", "_required_": true}, "locked": {"description": "Whether the dataset is currently locked.", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "unlock_error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if unlock would fail, or `null` if unlock would succeed.", "title": "unlock_error", "_name_": "unlock_error", "_required_": true}, "unlock_successful": {"description": "Whether an unlock operation would be successful.", "title": "unlock_successful", "type": "boolean", "_name_": "unlock_successful", "_required_": true}}, "required": ["name", "key_format", "key_present_in_database", "valid_key", "locked", "unlock_error", "unlock_successful"], "title": "PoolDatasetEncryptionSummary", "type": "object", "_attrs_order_": ["name", "key_format", "key_present_in_database", "valid_key", "locked", "unlock_error", "unlock_successful"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.export_key": {"description": "Export own encryption key for dataset `id`. If `download` is `true`, key will be downloaded in a json file\nwhere the same file can be used to unlock the dataset, otherwise it will be returned as string.\n\nPlease refer to websocket documentation for downloading the file.", "cli_description": "Export own encryption key for dataset `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to export the encryption key from.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"default": false, "description": "Whether to prepare the key for download as a file.", "title": "download", "type": "boolean", "_name_": "download", "_required_": false}], "returns": [{"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The exported encryption key as a hex string, or `null` if no key is available.", "title": "result", "_name_": "result", "_required_": true}]}, "pool.dataset.export_keys": {"description": "Export keys for `id` and its children which are stored in the system. The exported file is a JSON file\nwhich has a dictionary containing dataset names as keys and their keys as the value.\n\nPlease refer to websocket documentation for downloading the file.", "cli_description": "Export keys for `id` and its children which are stored in the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["DATASET_WRITE", "REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to export keys from recursively.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful key export.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.export_keys_for_replication": {"description": "Export keys for replication task `id` for source dataset(s) which are stored in the system. The exported file\nis a JSON file which has a dictionary containing dataset names as keys and their keys as the value.\n\nPlease refer to websocket documentation for downloading the file.", "cli_description": "Export keys for replication task `id` for source dataset(s) which are stored in the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["DATASET_WRITE", "REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL", "SHARING_ADMIN"], "accepts": [{"description": "The pool ID to export dataset keys for replication purposes.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": true, "properties": {"id": {"description": "The full dataset path including pool name.", "examples": ["tank/dataset/child"], "title": "id", "type": "string", "_name_": "id", "_required_": false}, "type": {"description": "The dataset type.", "examples": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "name": {"description": "The dataset name without the pool prefix.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "pool": {"description": "The name of the ZFS pool containing this dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "encrypted": {"description": "Whether the dataset is encrypted.", "title": "encrypted", "type": "boolean", "_name_": "encrypted", "_required_": false}, "encryption_root": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The root dataset where encryption is enabled. `null` if the dataset is not encrypted.", "title": "encryption_root", "_name_": "encryption_root", "_required_": false}, "key_loaded": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the encryption key is currently loaded for encrypted datasets. `null` for unencrypted datasets.", "title": "key_loaded", "_name_": "key_loaded", "_required_": false}, "children": {"description": "Array of child dataset objects nested under this dataset.", "items": [{}], "title": "children", "type": "array", "_name_": "children", "_required_": false}, "user_properties": {"description": "Custom user-defined ZFS properties set on this dataset as key-value pairs.", "title": "user_properties", "type": "object", "_name_": "user_properties", "_required_": false}, "locked": {"description": "Whether an encrypted dataset is currently locked (key not loaded).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "comments": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "comments", "type": "object", "description": "ZFS comments property for storing descriptive text about the dataset.", "_name_": "comments", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_warning", "type": "object", "description": "ZFS quota warning threshold property as a percentage.", "_name_": "quota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_critical", "type": "object", "description": "ZFS quota critical threshold property as a percentage.", "_name_": "quota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_warning", "type": "object", "description": "ZFS reference quota warning threshold property as a percentage.", "_name_": "refquota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_critical", "type": "object", "description": "ZFS reference quota critical threshold property as a percentage.", "_name_": "refquota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "managedby": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "managedby", "type": "object", "description": "Identifies which service or system manages this dataset.", "_name_": "managedby", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "deduplication": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "deduplication", "type": "object", "description": "ZFS deduplication setting - whether identical data blocks are stored only once.", "_name_": "deduplication", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "aclmode": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "aclmode", "type": "object", "description": "How Access Control Lists (ACLs) are handled when chmod is used.", "_name_": "aclmode", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "acltype": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "acltype", "type": "object", "description": "The type of Access Control List system used (NFSV4, POSIX, or OFF).", "_name_": "acltype", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "xattr": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "xattr", "type": "object", "description": "Extended attributes storage method (on/off).", "_name_": "xattr", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "atime": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "atime", "type": "object", "description": "Whether file access times are updated when files are accessed.", "_name_": "atime", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "casesensitivity": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "casesensitivity", "type": "object", "description": "File name case sensitivity setting (sensitive/insensitive).", "_name_": "casesensitivity", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "checksum": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "checksum", "type": "object", "description": "Data integrity checksum algorithm used for this dataset.", "_name_": "checksum", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "exec": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "exec", "type": "object", "description": "Whether files in this dataset can be executed.", "_name_": "exec", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sync": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sync", "type": "object", "description": "Synchronous write behavior (standard/always/disabled).", "_name_": "sync", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compression": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compression", "type": "object", "description": "Compression algorithm and level applied to data in this dataset.", "_name_": "compression", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compressratio": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compressratio", "type": "object", "description": "The achieved compression ratio as a decimal (e.g., '2.50x').", "_name_": "compressratio", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "origin": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "origin", "type": "object", "description": "The snapshot from which this clone was created. Empty for non-clone datasets.", "_name_": "origin", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota", "type": "object", "description": "Maximum amount of disk space this dataset and its children can consume.", "_name_": "quota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota", "type": "object", "description": "Maximum amount of disk space this dataset itself can consume (excluding children).", "_name_": "refquota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "reservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "reservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset and its children.", "_name_": "reservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refreservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset itself.", "_name_": "refreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "copies": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "copies", "type": "object", "description": "Number of copies of data blocks to maintain for redundancy (1-3).", "_name_": "copies", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdir": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdir", "type": "object", "description": "Visibility of the .zfs/snapshot directory (visible/hidden).", "_name_": "snapdir", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "readonly": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "readonly", "type": "object", "description": "Whether the dataset is read-only.", "_name_": "readonly", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "recordsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "recordsize", "type": "object", "description": "The suggested block size for files in this filesystem dataset.", "_name_": "recordsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sparse": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sparse", "type": "object", "description": "For volumes, whether to use sparse (thin) provisioning.", "_name_": "sparse", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volsize", "type": "object", "description": "For volumes, the logical size of the volume.", "_name_": "volsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volblocksize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volblocksize", "type": "object", "description": "For volumes, the block size used by the volume.", "_name_": "volblocksize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "key_format": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "key_format", "type": "object", "description": "Format of the encryption key (hex/raw/passphrase). Only relevant for encrypted datasets.", "_name_": "key_format", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "encryption_algorithm": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "encryption_algorithm", "type": "object", "description": "Encryption algorithm used (e.g., AES-256-GCM). Only relevant for encrypted datasets.", "_name_": "encryption_algorithm", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "used": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "used", "type": "object", "description": "Total amount of disk space consumed by this dataset and all its children.", "_name_": "used", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbychildren": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbychildren", "type": "object", "description": "Amount of disk space consumed by child datasets.", "_name_": "usedbychildren", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbydataset": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbydataset", "type": "object", "description": "Amount of disk space consumed by this dataset itself, excluding children and snapshots.", "_name_": "usedbydataset", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbyrefreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbyrefreservation", "type": "object", "description": "Amount of disk space consumed by the refreservation of this dataset.", "_name_": "usedbyrefreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbysnapshots": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbysnapshots", "type": "object", "description": "Amount of disk space consumed by snapshots of this dataset.", "_name_": "usedbysnapshots", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "available": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "available", "type": "object", "description": "Amount of disk space available to this dataset and its children.", "_name_": "available", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "special_small_block_size": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "special_small_block_size", "type": "object", "description": "Size threshold below which blocks are stored on special vdevs if configured.", "_name_": "special_small_block_size", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "pbkdf2iters": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "pbkdf2iters", "type": "object", "description": "Number of PBKDF2 iterations used for passphrase-based encryption keys.", "_name_": "pbkdf2iters", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "creation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "creation", "type": "object", "description": "Timestamp when this dataset was created.", "_name_": "creation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdev": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdev", "type": "object", "description": "Controls visibility of volume snapshots under /dev/zvol//.", "_name_": "snapdev", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "mountpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where this dataset is mounted. Null for unmounted datasets or volumes.", "title": "mountpoint", "_name_": "mountpoint", "_required_": false}}, "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "type", "name", "pool", "encrypted", "encryption_root", "key_loaded", "children", "user_properties", "locked", "comments", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "managedby", "deduplication", "aclmode", "acltype", "xattr", "atime", "casesensitivity", "checksum", "exec", "sync", "compression", "compressratio", "origin", "quota", "refquota", "reservation", "refreservation", "copies", "snapdir", "readonly", "recordsize", "sparse", "volsize", "volblocksize", "key_format", "encryption_algorithm", "used", "usedbychildren", "usedbydataset", "usedbyrefreservation", "usedbysnapshots", "available", "special_small_block_size", "pbkdf2iters", "creation", "snapdev", "mountpoint"]}]}, "pool.dataset.get_quota": {"description": "Return a list of the specified `quota_type` of quotas on the ZFS dataset `ds`.\nSupport `query-filters` and `query-options`.\n\nNote: SMB client requests to set a quota granting no space will result\nin an on-disk quota of 1 KiB.", "cli_description": "Return a list of the specified `quota_type` of quotas on the ZFS dataset `ds`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The dataset path to retrieve quotas for.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, {"description": "The type of quotas to retrieve.", "enum": ["USER", "GROUP", "DATASET", "PROJECT"], "title": "quota_type", "type": "string", "_name_": "quota_type", "_required_": true}, {"default": [], "description": "Query filters to limit the results returned.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options such as sorting and pagination.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"description": "Array of quota information for the specified quota type.", "items": [{"discriminator": {"mapping": {"DATASET": "#/$defs/PoolDatasetDatasetQuota", "GROUP": "#/$defs/PoolDatasetUserGroupQuota", "PROJECT": "#/$defs/PoolDatasetProjectQuota", "USER": "#/$defs/PoolDatasetUserGroupQuota"}, "propertyName": "quota_type"}, "oneOf": [{"additionalProperties": false, "properties": {"used_bytes": {"description": "The number of bytes the user has written to the dataset. A value of zero means unlimited. May not instantly update as space is used.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": false}, "quota": {"description": "The quota size in bytes. Absent if no quota is set.", "title": "quota", "type": "integer", "_name_": "quota", "_required_": false}, "quota_type": {"description": "Type identifier for user or group quotas.", "enum": ["USER", "GROUP"], "title": "quota_type", "type": "string", "_name_": "quota_type", "_required_": false}, "id": {"description": "The UID or GID to which the quota applies.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The user or group name to which the quota applies. Value is null if the id in the quota cannot be resolved to a user or group. This indicates that the user or group does not exist on the server.", "title": "name", "_name_": "name", "_required_": false}, "obj_used": {"description": "The number of objects currently owned by `id`.", "title": "obj_used", "type": "integer", "_name_": "obj_used", "_required_": false}, "obj_quota": {"description": "The number of objects that may be owned by `id`. A value of zero means unlimited. Absent if no objquota is set.", "title": "obj_quota", "type": "integer", "_name_": "obj_quota", "_required_": false}}, "title": "PoolDatasetUserGroupQuota", "type": "object", "_attrs_order_": ["used_bytes", "quota", "quota_type", "id", "name", "obj_used", "obj_quota"]}, {"additionalProperties": false, "properties": {"used_bytes": {"description": "The number of bytes the user has written to the dataset. A value of zero means unlimited. May not instantly update as space is used.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": false}, "quota": {"description": "The quota size in bytes. Absent if no quota is set.", "title": "quota", "type": "integer", "_name_": "quota", "_required_": false}, "quota_type": {"const": "DATASET", "description": "Type identifier for dataset quotas.", "enum": ["DATASET"], "title": "quota_type", "type": "string", "_name_": "quota_type", "_required_": false}, "id": {"description": "Name of the dataset.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Name of the dataset.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "refquota": {"description": "The dataset's reference quota in bytes.", "title": "refquota", "type": "integer", "_name_": "refquota", "_required_": false}}, "title": "PoolDatasetDatasetQuota", "type": "object", "_attrs_order_": ["used_bytes", "quota", "quota_type", "id", "name", "refquota"]}, {"additionalProperties": false, "properties": {"used_bytes": {"description": "The number of bytes the user has written to the dataset. A value of zero means unlimited. May not instantly update as space is used.", "title": "used_bytes", "type": "integer", "_name_": "used_bytes", "_required_": false}, "quota": {"description": "The quota size in bytes. Absent if no quota is set.", "title": "quota", "type": "integer", "_name_": "quota", "_required_": false}, "quota_type": {"const": "PROJECT", "description": "Type identifier for project quotas.", "enum": ["PROJECT"], "title": "quota_type", "type": "string", "_name_": "quota_type", "_required_": false}, "id": {"description": "The project ID.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "obj_used": {"description": "The number of objects currently owned by `id`.", "title": "obj_used", "type": "integer", "_name_": "obj_used", "_required_": false}, "obj_quota": {"description": "The number of objects that may be owned by `id`. A value of zero means unlimited. Absent if no objquota is set.", "title": "obj_quota", "type": "integer", "_name_": "obj_quota", "_required_": false}}, "title": "PoolDatasetProjectQuota", "type": "object", "_attrs_order_": ["used_bytes", "quota", "quota_type", "id", "obj_used", "obj_quota"]}]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.inherit_parent_encryption_properties": {"description": "Allows inheriting parent's encryption root discarding its current encryption settings. This\ncan only be done where `id` has an encrypted parent and `id` itself is an encryption root.", "cli_description": "Allows inheriting parent's encryption root discarding its current encryption settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to inherit encryption properties from its parent.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful inheritance of parent encryption properties.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.lock": {"description": "Locks `id` dataset. It will unmount the dataset and its children before locking.\n\nAfter the dataset has been unmounted, system will set immutable flag on the dataset's mountpoint where\nthe dataset was mounted before it was locked making sure that the path cannot be modified. Once the dataset\nis unlocked, it will not be affected by this change and consumers can continue consuming it.", "cli_description": "Locks `id` dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to lock.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force_umount": {"default": false, "description": "Force unmounting of the dataset before locking.", "title": "force_umount", "type": "boolean", "_name_": "force_umount", "_required_": false}}, "title": "options", "type": "object", "description": "Options for locking the dataset, such as force unmount settings.", "_name_": "options", "_required_": false, "_attrs_order_": ["force_umount"]}], "returns": [{"const": true, "description": "Dataset is locked.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.dataset.processes": {"description": "Return a list of processes using this dataset.\n\nExample return value:\n\n[\n {\n \"pid\": 2520,\n \"name\": \"smbd\",\n \"service\": \"cifs\"\n },\n {\n \"pid\": 97778,\n \"name\": \"minio\",\n \"cmdline\": \"/usr/local/bin/minio -C /usr/local/etc/minio server --address=0.0.0.0:9000 --quiet /mnt/tank/wk\"\n }\n]", "cli_description": "Return a list of processes using this dataset", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to list processes for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of processes currently using the dataset.", "items": [{"additionalProperties": false, "properties": {"pid": {"description": "Process ID of the process using the pool.", "title": "pid", "type": "integer", "_name_": "pid", "_required_": true}, "name": {"description": "Name of the process using the pool.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "service": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the service if this process belongs to a system service.", "title": "service", "_name_": "service", "_required_": true}, "cmdline": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Full command line of the process.", "title": "cmdline", "_name_": "cmdline", "_required_": true}}, "required": ["pid", "name", "service", "cmdline"], "title": "PoolProcess", "type": "object", "_attrs_order_": ["pid", "name", "service", "cmdline"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.promote": {"description": "Promote the cloned dataset `id`.", "cli_description": "Promote the cloned dataset `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The clone dataset ID (full path) to promote to become the parent.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful clone promotion.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.query": {"description": "Query Pool Datasets with `query-filters` and `query-options`.\n\nWe provide two ways to retrieve datasets. The first is a flat structure (default), where\nall datasets in the system are returned as separate objects which contain all data\nthere is for their children. This retrieval type is slightly slower because of duplicates in each object.\nThe second type is hierarchical, where only top level datasets are returned in the list. They contain all the\nchildren in the `children` key. This retrieval type is slightly faster.\nThese options are controlled by the `query-options.extra.flat` attribute (default true).\n\nIn some cases it might be desirable to only retrieve details of a dataset itself and not it's children, in this\ncase `query-options.extra.retrieve_children` should be explicitly specified and set to `false` which will\nresult in children not being retrieved.\n\nIn case only some properties are desired to be retrieved for datasets, consumer should specify\n`query-options.extra.properties` which when `null` ( which is the default ) will retrieve all properties\nand otherwise a list can be specified like `[\"type\", \"used\", \"available\"]` to retrieve selective properties.\nIf no properties are desired, in that case an empty list should be sent. It should be noted that specifying\nempty list will still retrieve user properties. If user properties are not desired, in that case\n`query-options.extra.retrieve_user_props` should be set to `false`.\n\n`query-options.extra.snapshots` can be set to retrieve snapshot(s) of dataset in question.\n\n`query-options.extra.snapshots_recursive` can be set to retrieve snapshot(s) recursively of dataset in question.\nIf `query-options.extra.snapshots_recursive` and `query-options.extra.snapshots` are set, snapshot(s) will be\nretrieved recursively.\n\n`query-options.extra.snapshots_properties` can be specified to list out properties which should be retrieved\nfor snapshot(s) related to each dataset. By default only name of the snapshot would be retrieved, however\nif `null` is specified all properties of the snapshot would be retrieved in this case.", "cli_description": "Query Pool Datasets with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": true, "properties": {"id": {"description": "The full dataset path including pool name.", "examples": ["tank/dataset/child"], "title": "id", "type": "string", "_name_": "id", "_required_": false}, "type": {"description": "The dataset type.", "examples": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "name": {"description": "The dataset name without the pool prefix.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "pool": {"description": "The name of the ZFS pool containing this dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "encrypted": {"description": "Whether the dataset is encrypted.", "title": "encrypted", "type": "boolean", "_name_": "encrypted", "_required_": false}, "encryption_root": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The root dataset where encryption is enabled. `null` if the dataset is not encrypted.", "title": "encryption_root", "_name_": "encryption_root", "_required_": false}, "key_loaded": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the encryption key is currently loaded for encrypted datasets. `null` for unencrypted datasets.", "title": "key_loaded", "_name_": "key_loaded", "_required_": false}, "children": {"description": "Array of child dataset objects nested under this dataset.", "items": [{}], "title": "children", "type": "array", "_name_": "children", "_required_": false}, "user_properties": {"description": "Custom user-defined ZFS properties set on this dataset as key-value pairs.", "title": "user_properties", "type": "object", "_name_": "user_properties", "_required_": false}, "locked": {"description": "Whether an encrypted dataset is currently locked (key not loaded).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "comments": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "comments", "type": "object", "description": "ZFS comments property for storing descriptive text about the dataset.", "_name_": "comments", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_warning", "type": "object", "description": "ZFS quota warning threshold property as a percentage.", "_name_": "quota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_critical", "type": "object", "description": "ZFS quota critical threshold property as a percentage.", "_name_": "quota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_warning", "type": "object", "description": "ZFS reference quota warning threshold property as a percentage.", "_name_": "refquota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_critical", "type": "object", "description": "ZFS reference quota critical threshold property as a percentage.", "_name_": "refquota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "managedby": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "managedby", "type": "object", "description": "Identifies which service or system manages this dataset.", "_name_": "managedby", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "deduplication": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "deduplication", "type": "object", "description": "ZFS deduplication setting - whether identical data blocks are stored only once.", "_name_": "deduplication", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "aclmode": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "aclmode", "type": "object", "description": "How Access Control Lists (ACLs) are handled when chmod is used.", "_name_": "aclmode", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "acltype": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "acltype", "type": "object", "description": "The type of Access Control List system used (NFSV4, POSIX, or OFF).", "_name_": "acltype", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "xattr": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "xattr", "type": "object", "description": "Extended attributes storage method (on/off).", "_name_": "xattr", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "atime": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "atime", "type": "object", "description": "Whether file access times are updated when files are accessed.", "_name_": "atime", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "casesensitivity": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "casesensitivity", "type": "object", "description": "File name case sensitivity setting (sensitive/insensitive).", "_name_": "casesensitivity", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "checksum": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "checksum", "type": "object", "description": "Data integrity checksum algorithm used for this dataset.", "_name_": "checksum", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "exec": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "exec", "type": "object", "description": "Whether files in this dataset can be executed.", "_name_": "exec", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sync": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sync", "type": "object", "description": "Synchronous write behavior (standard/always/disabled).", "_name_": "sync", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compression": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compression", "type": "object", "description": "Compression algorithm and level applied to data in this dataset.", "_name_": "compression", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compressratio": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compressratio", "type": "object", "description": "The achieved compression ratio as a decimal (e.g., '2.50x').", "_name_": "compressratio", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "origin": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "origin", "type": "object", "description": "The snapshot from which this clone was created. Empty for non-clone datasets.", "_name_": "origin", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota", "type": "object", "description": "Maximum amount of disk space this dataset and its children can consume.", "_name_": "quota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota", "type": "object", "description": "Maximum amount of disk space this dataset itself can consume (excluding children).", "_name_": "refquota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "reservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "reservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset and its children.", "_name_": "reservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refreservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset itself.", "_name_": "refreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "copies": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "copies", "type": "object", "description": "Number of copies of data blocks to maintain for redundancy (1-3).", "_name_": "copies", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdir": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdir", "type": "object", "description": "Visibility of the .zfs/snapshot directory (visible/hidden).", "_name_": "snapdir", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "readonly": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "readonly", "type": "object", "description": "Whether the dataset is read-only.", "_name_": "readonly", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "recordsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "recordsize", "type": "object", "description": "The suggested block size for files in this filesystem dataset.", "_name_": "recordsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sparse": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sparse", "type": "object", "description": "For volumes, whether to use sparse (thin) provisioning.", "_name_": "sparse", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volsize", "type": "object", "description": "For volumes, the logical size of the volume.", "_name_": "volsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volblocksize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volblocksize", "type": "object", "description": "For volumes, the block size used by the volume.", "_name_": "volblocksize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "key_format": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "key_format", "type": "object", "description": "Format of the encryption key (hex/raw/passphrase). Only relevant for encrypted datasets.", "_name_": "key_format", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "encryption_algorithm": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "encryption_algorithm", "type": "object", "description": "Encryption algorithm used (e.g., AES-256-GCM). Only relevant for encrypted datasets.", "_name_": "encryption_algorithm", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "used": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "used", "type": "object", "description": "Total amount of disk space consumed by this dataset and all its children.", "_name_": "used", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbychildren": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbychildren", "type": "object", "description": "Amount of disk space consumed by child datasets.", "_name_": "usedbychildren", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbydataset": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbydataset", "type": "object", "description": "Amount of disk space consumed by this dataset itself, excluding children and snapshots.", "_name_": "usedbydataset", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbyrefreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbyrefreservation", "type": "object", "description": "Amount of disk space consumed by the refreservation of this dataset.", "_name_": "usedbyrefreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbysnapshots": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbysnapshots", "type": "object", "description": "Amount of disk space consumed by snapshots of this dataset.", "_name_": "usedbysnapshots", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "available": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "available", "type": "object", "description": "Amount of disk space available to this dataset and its children.", "_name_": "available", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "special_small_block_size": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "special_small_block_size", "type": "object", "description": "Size threshold below which blocks are stored on special vdevs if configured.", "_name_": "special_small_block_size", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "pbkdf2iters": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "pbkdf2iters", "type": "object", "description": "Number of PBKDF2 iterations used for passphrase-based encryption keys.", "_name_": "pbkdf2iters", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "creation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "creation", "type": "object", "description": "Timestamp when this dataset was created.", "_name_": "creation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdev": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdev", "type": "object", "description": "Controls visibility of volume snapshots under /dev/zvol//.", "_name_": "snapdev", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "mountpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where this dataset is mounted. Null for unmounted datasets or volumes.", "title": "mountpoint", "_name_": "mountpoint", "_required_": false}}, "title": "PoolDatasetQueryResultItem", "type": "object", "_attrs_order_": ["id", "type", "name", "pool", "encrypted", "encryption_root", "key_loaded", "children", "user_properties", "locked", "comments", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "managedby", "deduplication", "aclmode", "acltype", "xattr", "atime", "casesensitivity", "checksum", "exec", "sync", "compression", "compressratio", "origin", "quota", "refquota", "reservation", "refreservation", "copies", "snapdir", "readonly", "recordsize", "sparse", "volsize", "volblocksize", "key_format", "encryption_algorithm", "used", "usedbychildren", "usedbydataset", "usedbyrefreservation", "usedbysnapshots", "available", "special_small_block_size", "pbkdf2iters", "creation", "snapdev", "mountpoint"]}], "type": "array"}, {"additionalProperties": true, "properties": {"id": {"description": "The full dataset path including pool name.", "examples": ["tank/dataset/child"], "title": "id", "type": "string", "_name_": "id", "_required_": false}, "type": {"description": "The dataset type.", "examples": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "name": {"description": "The dataset name without the pool prefix.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "pool": {"description": "The name of the ZFS pool containing this dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "encrypted": {"description": "Whether the dataset is encrypted.", "title": "encrypted", "type": "boolean", "_name_": "encrypted", "_required_": false}, "encryption_root": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The root dataset where encryption is enabled. `null` if the dataset is not encrypted.", "title": "encryption_root", "_name_": "encryption_root", "_required_": false}, "key_loaded": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the encryption key is currently loaded for encrypted datasets. `null` for unencrypted datasets.", "title": "key_loaded", "_name_": "key_loaded", "_required_": false}, "children": {"description": "Array of child dataset objects nested under this dataset.", "items": [{}], "title": "children", "type": "array", "_name_": "children", "_required_": false}, "user_properties": {"description": "Custom user-defined ZFS properties set on this dataset as key-value pairs.", "title": "user_properties", "type": "object", "_name_": "user_properties", "_required_": false}, "locked": {"description": "Whether an encrypted dataset is currently locked (key not loaded).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "comments": {"description": "ZFS comments property for storing descriptive text about the dataset.", "title": "comments", "_name_": "comments", "_required_": false}, "quota_warning": {"description": "ZFS quota warning threshold property as a percentage.", "title": "quota_warning", "_name_": "quota_warning", "_required_": false}, "quota_critical": {"description": "ZFS quota critical threshold property as a percentage.", "title": "quota_critical", "_name_": "quota_critical", "_required_": false}, "refquota_warning": {"description": "ZFS reference quota warning threshold property as a percentage.", "title": "refquota_warning", "_name_": "refquota_warning", "_required_": false}, "refquota_critical": {"description": "ZFS reference quota critical threshold property as a percentage.", "title": "refquota_critical", "_name_": "refquota_critical", "_required_": false}, "managedby": {"description": "Identifies which service or system manages this dataset.", "title": "managedby", "_name_": "managedby", "_required_": false}, "deduplication": {"description": "ZFS deduplication setting - whether identical data blocks are stored only once.", "title": "deduplication", "_name_": "deduplication", "_required_": false}, "aclmode": {"description": "How Access Control Lists (ACLs) are handled when chmod is used.", "title": "aclmode", "_name_": "aclmode", "_required_": false}, "acltype": {"description": "The type of Access Control List system used (NFSV4, POSIX, or OFF).", "title": "acltype", "_name_": "acltype", "_required_": false}, "xattr": {"description": "Extended attributes storage method (on/off).", "title": "xattr", "_name_": "xattr", "_required_": false}, "atime": {"description": "Whether file access times are updated when files are accessed.", "title": "atime", "_name_": "atime", "_required_": false}, "casesensitivity": {"description": "File name case sensitivity setting (sensitive/insensitive).", "title": "casesensitivity", "_name_": "casesensitivity", "_required_": false}, "checksum": {"description": "Data integrity checksum algorithm used for this dataset.", "title": "checksum", "_name_": "checksum", "_required_": false}, "exec": {"description": "Whether files in this dataset can be executed.", "title": "exec", "_name_": "exec", "_required_": false}, "sync": {"description": "Synchronous write behavior (standard/always/disabled).", "title": "sync", "_name_": "sync", "_required_": false}, "compression": {"description": "Compression algorithm and level applied to data in this dataset.", "title": "compression", "_name_": "compression", "_required_": false}, "compressratio": {"description": "The achieved compression ratio as a decimal (e.g., '2.50x').", "title": "compressratio", "_name_": "compressratio", "_required_": false}, "origin": {"description": "The snapshot from which this clone was created. Empty for non-clone datasets.", "title": "origin", "_name_": "origin", "_required_": false}, "quota": {"description": "Maximum amount of disk space this dataset and its children can consume.", "title": "quota", "_name_": "quota", "_required_": false}, "refquota": {"description": "Maximum amount of disk space this dataset itself can consume (excluding children).", "title": "refquota", "_name_": "refquota", "_required_": false}, "reservation": {"description": "Minimum amount of disk space guaranteed to be available to this dataset and its children.", "title": "reservation", "_name_": "reservation", "_required_": false}, "refreservation": {"description": "Minimum amount of disk space guaranteed to be available to this dataset itself.", "title": "refreservation", "_name_": "refreservation", "_required_": false}, "copies": {"description": "Number of copies of data blocks to maintain for redundancy (1-3).", "title": "copies", "_name_": "copies", "_required_": false}, "snapdir": {"description": "Visibility of the .zfs/snapshot directory (visible/hidden).", "title": "snapdir", "_name_": "snapdir", "_required_": false}, "readonly": {"description": "Whether the dataset is read-only.", "title": "readonly", "_name_": "readonly", "_required_": false}, "recordsize": {"description": "The suggested block size for files in this filesystem dataset.", "title": "recordsize", "_name_": "recordsize", "_required_": false}, "sparse": {"description": "For volumes, whether to use sparse (thin) provisioning.", "title": "sparse", "_name_": "sparse", "_required_": false}, "volsize": {"description": "For volumes, the logical size of the volume.", "title": "volsize", "_name_": "volsize", "_required_": false}, "volblocksize": {"description": "For volumes, the block size used by the volume.", "title": "volblocksize", "_name_": "volblocksize", "_required_": false}, "key_format": {"description": "Format of the encryption key (hex/raw/passphrase). Only relevant for encrypted datasets.", "title": "key_format", "_name_": "key_format", "_required_": false}, "encryption_algorithm": {"description": "Encryption algorithm used (e.g., AES-256-GCM). Only relevant for encrypted datasets.", "title": "encryption_algorithm", "_name_": "encryption_algorithm", "_required_": false}, "used": {"description": "Total amount of disk space consumed by this dataset and all its children.", "title": "used", "_name_": "used", "_required_": false}, "usedbychildren": {"description": "Amount of disk space consumed by child datasets.", "title": "usedbychildren", "_name_": "usedbychildren", "_required_": false}, "usedbydataset": {"description": "Amount of disk space consumed by this dataset itself, excluding children and snapshots.", "title": "usedbydataset", "_name_": "usedbydataset", "_required_": false}, "usedbyrefreservation": {"description": "Amount of disk space consumed by the refreservation of this dataset.", "title": "usedbyrefreservation", "_name_": "usedbyrefreservation", "_required_": false}, "usedbysnapshots": {"description": "Amount of disk space consumed by snapshots of this dataset.", "title": "usedbysnapshots", "_name_": "usedbysnapshots", "_required_": false}, "available": {"description": "Amount of disk space available to this dataset and its children.", "title": "available", "_name_": "available", "_required_": false}, "special_small_block_size": {"description": "Size threshold below which blocks are stored on special vdevs if configured.", "title": "special_small_block_size", "_name_": "special_small_block_size", "_required_": false}, "pbkdf2iters": {"description": "Number of PBKDF2 iterations used for passphrase-based encryption keys.", "title": "pbkdf2iters", "_name_": "pbkdf2iters", "_required_": false}, "creation": {"description": "Timestamp when this dataset was created.", "title": "creation", "_name_": "creation", "_required_": false}, "snapdev": {"description": "Controls visibility of volume snapshots under /dev/zvol//.", "title": "snapdev", "_name_": "snapdev", "_required_": false}, "mountpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where this dataset is mounted. Null for unmounted datasets or volumes.", "title": "mountpoint", "_name_": "mountpoint", "_required_": false}}, "title": "PoolDatasetQueryResultItem", "type": "object", "_attrs_order_": ["id", "type", "name", "pool", "encrypted", "encryption_root", "key_loaded", "children", "user_properties", "locked", "comments", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "managedby", "deduplication", "aclmode", "acltype", "xattr", "atime", "casesensitivity", "checksum", "exec", "sync", "compression", "compressratio", "origin", "quota", "refquota", "reservation", "refreservation", "copies", "snapdir", "readonly", "recordsize", "sparse", "volsize", "volblocksize", "key_format", "encryption_algorithm", "used", "usedbychildren", "usedbydataset", "usedbyrefreservation", "usedbysnapshots", "available", "special_small_block_size", "pbkdf2iters", "creation", "snapdev", "mountpoint"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "pool.dataset.recommended_zvol_blocksize": {"description": "Helper method to get recommended size for a new zvol (dataset of type VOLUME).\n\n", "cli_description": "Helper method to get recommended size for a new zvol (dataset of type VOLUME)", "examples": {"websocket": ["\n\n Get blocksize for pool \"tank\".\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.dataset.recommended_zvol_blocksize\",\n \"params\": [\"tank\"]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The pool name to get the recommended volume block size for.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}], "returns": [{"description": "The recommended block size for volumes on this pool.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "pool.dataset.recordsize_choices": {"description": "Retrieve recordsize choices for datasets.", "cli_description": "Retrieve recordsize choices for datasets", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Optional pool name to get record size choices for. If not provided, returns general choices.", "title": "pool_name", "_name_": "pool_name", "_required_": false}], "returns": [{"description": "Array of available record size options for filesystem datasets.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "pool.dataset.rename": {"description": "Rename a pool dataset `id`.\n\nNo safety checks are performed when renaming ZFS resources. If the dataset is in use by services such\nas SMB, iSCSI, snapshot tasks, replication, or cloud sync, renaming may cause disruptions or service failures.\n\nProceed only if you are certain the ZFS resource is not in use and fully understand the risks.\nSet Force to continue.", "cli_description": "Rename a pool dataset `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The current dataset ID (full path) to rename.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"new_name": {"description": "The new name for the dataset.", "minLength": 1, "title": "new_name", "type": "string", "_name_": "new_name", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively rename child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "force": {"default": false, "description": "This operation does not check whether the dataset is currently in use. Renaming an active dataset may disrupt SMB shares, iSCSI targets, snapshots, replication, and other services.\n\nSet Force only if you understand and accept the risks.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "required": ["new_name"], "title": "data", "type": "object", "description": "The rename operation options including the new name and safety flags.", "_name_": "data", "_required_": true, "_attrs_order_": ["new_name", "recursive", "force"]}], "returns": [{"description": "Returns `null` on successful dataset rename.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.set_quota": {"description": "Allow users to set multiple quotas simultaneously by submitting a list of quotas.", "cli_description": "Allow users to set multiple quotas simultaneously by submitting a list of quotas", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The name of the target ZFS dataset.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, {"default": [{"quota_type": "USER", "id": "0", "quota_value": 0}], "description": "Specify an array of quota entries to apply to dataset. The array may contain all supported quota types.", "items": [{"additionalProperties": false, "properties": {"quota_type": {"description": "The type of quota to apply to the dataset. There are three over-arching types of quotas for ZFS datasets:\n\n* **Dataset quotas and refquotas.** If a `DATASET` quota type is specified in this API call, then the API acts as a wrapper for `pool.dataset.update`.\n* **User and group quotas.** These limit the amount of disk space consumed by files that are owned by the specified users or groups. If the respective \"object quota\" type is specfied, then the quota limits the number of objects that may be owned by the specified user or group.\n* **Project quotas.** These limit the amount of disk space consumed by files that are owned by the specified project. *Project quotas are not yet implemented.*", "enum": ["DATASET", "USER", "USEROBJ", "GROUP", "GROUPOBJ"], "title": "quota_type", "type": "string", "_name_": "quota_type", "_required_": true}, "id": {"description": "The UID, GID, or name to which the quota applies. If `quota_type` is 'DATASET', then `id` must be either `QUOTA` or `REFQUOTA`.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "quota_value": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "The quota size in bytes. Setting a value of `0` removes the user or group quota.", "title": "quota_value", "_name_": "quota_value", "_required_": true}}, "required": ["quota_type", "id", "quota_value"], "title": "PoolDatasetSetQuota", "type": "object", "_attrs_order_": ["quota_type", "id", "quota_value"]}], "maxItems": 100, "title": "quotas", "type": "array", "_name_": "quotas", "_required_": false}], "returns": [{"description": "Returns `null` on successful quota update.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.dataset.snapshot_count": {"description": "Returns snapshot count for specified `dataset`.", "cli_description": "Returns snapshot count for specified `dataset`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "The dataset path to count snapshots for.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}], "returns": [{"description": "The number of snapshots for the specified dataset.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "pool.dataset.unlock": {"description": "Unlock dataset `id` (and its children if `unlock_options.recursive` is `true`).\n\nIf `id` dataset is not encrypted an exception will be raised. There is one exception:\nwhen `id` is a root dataset and `unlock_options.recursive` is specified, encryption\nvalidation will not be performed for `id`. This allow unlocking encrypted children for the entire pool `id`.\n\nThere are two ways to supply the key(s)/passphrase(s) for unlocking a dataset:\n\n1. Upload a json file which contains encrypted dataset keys (it will be read from the input pipe if\n`unlock_options.key_file` is `true`). The format is the one that is used for exporting encrypted dataset keys\n(`pool.export_keys`).\n\n2. Specify a key or a passphrase for each unlocked dataset using `unlock_options.datasets`.", "cli_description": "Unlock dataset `id` (and its children if `unlock_options", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to unlock.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "In some cases it's possible that the provided key/passphrase is valid but the path where the dataset is supposed to be mounted after being unlocked already exists and is not empty. In this case, unlock operation would fail. This can be overridden by setting `datasets.X.force` boolean flag or by setting `force` flag. When any of these flags are set, system will rename the existing directory/file path where the dataset should be mounted resulting in successful unlock of the dataset.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "key_file": {"default": false, "description": "Whether to use a key file instead of a passphrase for unlocking encrypted datasets.", "title": "key_file", "type": "boolean", "_name_": "key_file", "_required_": false}, "recursive": {"default": false, "description": "Whether to recursively unlock child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "toggle_attachments": {"default": true, "description": "Whether attachments should be put in action after unlocking the dataset(s). Toggling attachments can theoretically lead to service interruption when daemons configurations are reloaded (this should not happen, and if this happens it should be considered a bug). As TrueNAS does not have a state for resources that should be unlocked but are still locked, disabling this option will put the system into an inconsistent state so it should really never be disabled.", "title": "toggle_attachments", "type": "boolean", "_name_": "toggle_attachments", "_required_": false}, "datasets": {"default": [], "description": "List of specific datasets with their individual unlock options.", "items": [{"additionalProperties": false, "properties": {"force": {"default": false, "description": "Force unlock even if the mount path already exists and is not empty.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "name": {"description": "The dataset name to unlock.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "key": {"description": "Raw hex-encoded encryption key for this dataset.", "maxLength": 64, "minLength": 64, "title": "key", "type": "string", "_name_": "key", "_required_": false}, "passphrase": {"description": "Passphrase for this dataset if using passphrase-based encryption.", "minLength": 1, "title": "passphrase", "type": "string", "_name_": "passphrase", "_required_": false}, "recursive": {"default": false, "description": "Apply the key or passphrase to all encrypted children.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}}, "required": ["name"], "title": "PoolDatasetUnlockOptionsDataset", "type": "object", "_attrs_order_": ["force", "name", "key", "passphrase", "recursive"]}], "title": "datasets", "type": "array", "_name_": "datasets", "_required_": false}}, "title": "options", "type": "object", "description": "Options for unlocking including force settings, recursion, and dataset-specific keys.", "_name_": "options", "_required_": false, "_attrs_order_": ["force", "key_file", "recursive", "toggle_attachments", "datasets"]}], "returns": [{"additionalProperties": false, "properties": {"unlocked": {"description": "Array of dataset names that were successfully unlocked.", "items": [{"type": "string"}], "title": "unlocked", "type": "array", "_name_": "unlocked", "_required_": true}, "failed": {"description": "Object containing datasets that failed to unlock and their respective error messages.", "title": "failed", "type": "object", "_name_": "failed", "_required_": true}}, "required": ["unlocked", "failed"], "title": "result", "type": "object", "description": "Results of the unlock operation including successful and failed datasets.", "_name_": "result", "_required_": true, "_attrs_order_": ["unlocked", "failed"]}]}, "pool.dataset.update": {"description": "Updates a dataset/zvol `id`.\n\n", "cli_description": "Updates a dataset/zvol `id`", "examples": {"websocket": ["\n\n Update the `comments` for \"tank/myuser\".\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.dataset.update,\n \"params\": [\"tank/myuser\", {\n \"comments\": \"Dataset for myuser, UPDATE #1\"\n }]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "The dataset ID (full path) to update.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"comments": {"description": "Comments or description for the dataset.", "title": "comments", "type": "string", "_name_": "comments", "_required_": false}, "sync": {"description": "Synchronous write behavior for the dataset.", "enum": ["STANDARD", "ALWAYS", "DISABLED", "INHERIT"], "title": "sync", "type": "string", "_name_": "sync", "_required_": false}, "snapdev": {"description": "Controls visibility of volume snapshots under /dev/zvol/.", "enum": ["HIDDEN", "VISIBLE", "INHERIT"], "title": "snapdev", "type": "string", "_name_": "snapdev", "_required_": false}, "compression": {"description": "Compression algorithm to use for the dataset. Higher numbered variants provide better compression but use more CPU. 'INHERIT' uses the parent dataset's setting.", "enum": ["ON", "OFF", "LZ4", "GZIP", "GZIP-1", "GZIP-9", "ZSTD", "ZSTD-FAST", "ZLE", "LZJB", "ZSTD-1", "ZSTD-2", "ZSTD-3", "ZSTD-4", "ZSTD-5", "ZSTD-6", "ZSTD-7", "ZSTD-8", "ZSTD-9", "ZSTD-10", "ZSTD-11", "ZSTD-12", "ZSTD-13", "ZSTD-14", "ZSTD-15", "ZSTD-16", "ZSTD-17", "ZSTD-18", "ZSTD-19", "ZSTD-FAST-1", "ZSTD-FAST-2", "ZSTD-FAST-3", "ZSTD-FAST-4", "ZSTD-FAST-5", "ZSTD-FAST-6", "ZSTD-FAST-7", "ZSTD-FAST-8", "ZSTD-FAST-9", "ZSTD-FAST-10", "ZSTD-FAST-20", "ZSTD-FAST-30", "ZSTD-FAST-40", "ZSTD-FAST-50", "ZSTD-FAST-60", "ZSTD-FAST-70", "ZSTD-FAST-80", "ZSTD-FAST-90", "ZSTD-FAST-100", "ZSTD-FAST-500", "ZSTD-FAST-1000", "INHERIT"], "title": "compression", "type": "string", "_name_": "compression", "_required_": false}, "exec": {"description": "Whether files in this dataset can be executed.", "enum": ["ON", "OFF", "INHERIT"], "title": "exec", "type": "string", "_name_": "exec", "_required_": false}, "managedby": {"description": "Identifies which service or system manages this dataset.", "minLength": 1, "title": "managedby", "type": "string", "_name_": "managedby", "_required_": false}, "quota_warning": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Percentage of dataset quota at which to issue a warning. 0-100 or 'INHERIT'.", "title": "quota_warning", "_name_": "quota_warning", "_required_": false}, "quota_critical": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Percentage of dataset quota at which to issue a critical alert. 0-100 or 'INHERIT'.", "title": "quota_critical", "_name_": "quota_critical", "_required_": false}, "refquota_warning": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Percentage of reference quota at which to issue a warning. 0-100 or 'INHERIT'.", "title": "refquota_warning", "_name_": "refquota_warning", "_required_": false}, "refquota_critical": {"anyOf": [{"maximum": 100, "minimum": 0, "type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Percentage of reference quota at which to issue a critical alert. 0-100 or 'INHERIT'.", "title": "refquota_critical", "_name_": "refquota_critical", "_required_": false}, "reservation": {"description": "Minimum disk space guaranteed to this dataset and its children in bytes.", "title": "reservation", "type": "integer", "_name_": "reservation", "_required_": false}, "refreservation": {"description": "Minimum disk space guaranteed to this dataset itself in bytes.", "title": "refreservation", "type": "integer", "_name_": "refreservation", "_required_": false}, "special_small_block_size": {"anyOf": [{"type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Size threshold below which blocks are stored on special vdevs.", "title": "special_small_block_size", "_name_": "special_small_block_size", "_required_": false}, "copies": {"anyOf": [{"type": "integer"}, {"const": "INHERIT", "enum": ["INHERIT"], "type": "string"}], "description": "Number of copies of data blocks to maintain for redundancy.", "title": "copies", "_name_": "copies", "_required_": false}, "snapdir": {"description": "Controls visibility of the `.zfs/snapshot` directory. 'DISABLED' hides snapshots, 'VISIBLE' shows them, 'HIDDEN' makes them accessible but not listed.", "enum": ["DISABLED", "VISIBLE", "HIDDEN", "INHERIT"], "title": "snapdir", "type": "string", "_name_": "snapdir", "_required_": false}, "deduplication": {"description": "Deduplication setting. 'ON' enables dedup, 'VERIFY' enables with checksum verification, 'OFF' disables.", "enum": ["ON", "VERIFY", "OFF", "INHERIT"], "title": "deduplication", "type": "string", "_name_": "deduplication", "_required_": false}, "checksum": {"description": "Checksum algorithm to verify data integrity. Higher security algorithms like SHA256 provide better protection but use more CPU.", "enum": ["ON", "OFF", "FLETCHER2", "FLETCHER4", "SHA256", "SHA512", "SKEIN", "EDONR", "BLAKE3", "INHERIT"], "title": "checksum", "type": "string", "_name_": "checksum", "_required_": false}, "readonly": {"description": "Whether the dataset is read-only.", "enum": ["ON", "OFF", "INHERIT"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "user_properties": {"description": "Custom user-defined properties to set on the dataset.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "User property key in namespace:property format.", "examples": ["custom:backup_policy", "org:created_by"], "pattern": ".*:.*", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "value": {"description": "The value to assign to the user property.", "title": "value", "type": "string", "_name_": "value", "_required_": true}}, "required": ["key", "value"], "title": "PoolDatasetCreateUserProperty", "type": "object", "_attrs_order_": ["key", "value"]}], "title": "user_properties", "type": "array", "_name_": "user_properties", "_required_": false}, "create_ancestors": {"description": "Whether to create any missing parent datasets.", "title": "create_ancestors", "type": "boolean", "_name_": "create_ancestors", "_required_": false}, "force_size": {"description": "Force creation even if the size is not optimal.", "title": "force_size", "type": "boolean", "_name_": "force_size", "_required_": false}, "volsize": {"description": "The volume size in bytes; supposed to be a multiple of the block size.", "title": "volsize", "type": "integer", "_name_": "volsize", "_required_": false}, "aclmode": {"description": "How Access Control Lists are handled when chmod is used.", "enum": ["PASSTHROUGH", "RESTRICTED", "DISCARD", "INHERIT"], "title": "aclmode", "type": "string", "_name_": "aclmode", "_required_": false}, "acltype": {"description": "The type of Access Control List system to use.", "enum": ["OFF", "NFSV4", "POSIX", "INHERIT"], "title": "acltype", "type": "string", "_name_": "acltype", "_required_": false}, "atime": {"description": "Whether file access times are updated when files are accessed.", "enum": ["ON", "OFF", "INHERIT"], "title": "atime", "type": "string", "_name_": "atime", "_required_": false}, "quota": {"anyOf": [{"minimum": 1073741824, "type": "integer"}, {"enum": [0, null]}], "description": "Maximum disk space this dataset and its children can consume in bytes.", "title": "quota", "_name_": "quota", "_required_": false}, "refquota": {"anyOf": [{"minimum": 1073741824, "type": "integer"}, {"enum": [0, null]}], "description": "Maximum disk space this dataset itself can consume in bytes.", "title": "refquota", "_name_": "refquota", "_required_": false}, "recordsize": {"description": "The suggested block size for files in this filesystem dataset.", "title": "recordsize", "type": "string", "_name_": "recordsize", "_required_": false}, "user_properties_update": {"description": "Array of user property updates to apply to the dataset.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "User property key in namespace:property format.", "examples": ["custom:backup_policy", "org:created_by"], "pattern": ".*:.*", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "value": {"description": "New value for the user property. Not required if removing the property.", "title": "value", "type": "string", "_name_": "value", "_required_": false}, "remove": {"description": "Whether to remove this user property from the dataset.", "title": "remove", "type": "boolean", "_name_": "remove", "_required_": false}}, "required": ["key"], "title": "PoolDatasetUpdateUserProperty", "type": "object", "_attrs_order_": ["key", "value", "remove"]}], "title": "user_properties_update", "type": "array", "_name_": "user_properties_update", "_required_": false}}, "title": "data", "type": "object", "description": "The dataset properties to update.", "_name_": "data", "_required_": true, "_attrs_order_": ["comments", "sync", "snapdev", "compression", "exec", "managedby", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "reservation", "refreservation", "special_small_block_size", "copies", "snapdir", "deduplication", "checksum", "readonly", "user_properties", "create_ancestors", "force_size", "volsize", "aclmode", "acltype", "atime", "quota", "refquota", "recordsize", "user_properties_update"]}], "returns": [{"additionalProperties": true, "properties": {"id": {"description": "The full dataset path including pool name.", "examples": ["tank/dataset/child"], "title": "id", "type": "string", "_name_": "id", "_required_": false}, "type": {"description": "The dataset type.", "examples": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "name": {"description": "The dataset name without the pool prefix.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "pool": {"description": "The name of the ZFS pool containing this dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "encrypted": {"description": "Whether the dataset is encrypted.", "title": "encrypted", "type": "boolean", "_name_": "encrypted", "_required_": false}, "encryption_root": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The root dataset where encryption is enabled. `null` if the dataset is not encrypted.", "title": "encryption_root", "_name_": "encryption_root", "_required_": false}, "key_loaded": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the encryption key is currently loaded for encrypted datasets. `null` for unencrypted datasets.", "title": "key_loaded", "_name_": "key_loaded", "_required_": false}, "children": {"description": "Array of child dataset objects nested under this dataset.", "items": [{}], "title": "children", "type": "array", "_name_": "children", "_required_": false}, "user_properties": {"description": "Custom user-defined ZFS properties set on this dataset as key-value pairs.", "title": "user_properties", "type": "object", "_name_": "user_properties", "_required_": false}, "locked": {"description": "Whether an encrypted dataset is currently locked (key not loaded).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "comments": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "comments", "type": "object", "description": "ZFS comments property for storing descriptive text about the dataset.", "_name_": "comments", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_warning", "type": "object", "description": "ZFS quota warning threshold property as a percentage.", "_name_": "quota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota_critical", "type": "object", "description": "ZFS quota critical threshold property as a percentage.", "_name_": "quota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_warning": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_warning", "type": "object", "description": "ZFS reference quota warning threshold property as a percentage.", "_name_": "refquota_warning", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota_critical": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota_critical", "type": "object", "description": "ZFS reference quota critical threshold property as a percentage.", "_name_": "refquota_critical", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "managedby": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "managedby", "type": "object", "description": "Identifies which service or system manages this dataset.", "_name_": "managedby", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "deduplication": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "deduplication", "type": "object", "description": "ZFS deduplication setting - whether identical data blocks are stored only once.", "_name_": "deduplication", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "aclmode": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "aclmode", "type": "object", "description": "How Access Control Lists (ACLs) are handled when chmod is used.", "_name_": "aclmode", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "acltype": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "acltype", "type": "object", "description": "The type of Access Control List system used (NFSV4, POSIX, or OFF).", "_name_": "acltype", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "xattr": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "xattr", "type": "object", "description": "Extended attributes storage method (on/off).", "_name_": "xattr", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "atime": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "atime", "type": "object", "description": "Whether file access times are updated when files are accessed.", "_name_": "atime", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "casesensitivity": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "casesensitivity", "type": "object", "description": "File name case sensitivity setting (sensitive/insensitive).", "_name_": "casesensitivity", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "checksum": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "checksum", "type": "object", "description": "Data integrity checksum algorithm used for this dataset.", "_name_": "checksum", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "exec": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "exec", "type": "object", "description": "Whether files in this dataset can be executed.", "_name_": "exec", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sync": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sync", "type": "object", "description": "Synchronous write behavior (standard/always/disabled).", "_name_": "sync", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compression": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compression", "type": "object", "description": "Compression algorithm and level applied to data in this dataset.", "_name_": "compression", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "compressratio": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "compressratio", "type": "object", "description": "The achieved compression ratio as a decimal (e.g., '2.50x').", "_name_": "compressratio", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "origin": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "origin", "type": "object", "description": "The snapshot from which this clone was created. Empty for non-clone datasets.", "_name_": "origin", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "quota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "quota", "type": "object", "description": "Maximum amount of disk space this dataset and its children can consume.", "_name_": "quota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refquota": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refquota", "type": "object", "description": "Maximum amount of disk space this dataset itself can consume (excluding children).", "_name_": "refquota", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "reservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "reservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset and its children.", "_name_": "reservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "refreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "refreservation", "type": "object", "description": "Minimum amount of disk space guaranteed to be available to this dataset itself.", "_name_": "refreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "copies": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "copies", "type": "object", "description": "Number of copies of data blocks to maintain for redundancy (1-3).", "_name_": "copies", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdir": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdir", "type": "object", "description": "Visibility of the .zfs/snapshot directory (visible/hidden).", "_name_": "snapdir", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "readonly": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "readonly", "type": "object", "description": "Whether the dataset is read-only.", "_name_": "readonly", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "recordsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "recordsize", "type": "object", "description": "The suggested block size for files in this filesystem dataset.", "_name_": "recordsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "sparse": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "sparse", "type": "object", "description": "For volumes, whether to use sparse (thin) provisioning.", "_name_": "sparse", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volsize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volsize", "type": "object", "description": "For volumes, the logical size of the volume.", "_name_": "volsize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "volblocksize": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "volblocksize", "type": "object", "description": "For volumes, the block size used by the volume.", "_name_": "volblocksize", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "key_format": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "key_format", "type": "object", "description": "Format of the encryption key (hex/raw/passphrase). Only relevant for encrypted datasets.", "_name_": "key_format", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "encryption_algorithm": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "encryption_algorithm", "type": "object", "description": "Encryption algorithm used (e.g., AES-256-GCM). Only relevant for encrypted datasets.", "_name_": "encryption_algorithm", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "used": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "used", "type": "object", "description": "Total amount of disk space consumed by this dataset and all its children.", "_name_": "used", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbychildren": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbychildren", "type": "object", "description": "Amount of disk space consumed by child datasets.", "_name_": "usedbychildren", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbydataset": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbydataset", "type": "object", "description": "Amount of disk space consumed by this dataset itself, excluding children and snapshots.", "_name_": "usedbydataset", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbyrefreservation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbyrefreservation", "type": "object", "description": "Amount of disk space consumed by the refreservation of this dataset.", "_name_": "usedbyrefreservation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "usedbysnapshots": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "usedbysnapshots", "type": "object", "description": "Amount of disk space consumed by snapshots of this dataset.", "_name_": "usedbysnapshots", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "available": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "available", "type": "object", "description": "Amount of disk space available to this dataset and its children.", "_name_": "available", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "special_small_block_size": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "special_small_block_size", "type": "object", "description": "Size threshold below which blocks are stored on special vdevs if configured.", "_name_": "special_small_block_size", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "pbkdf2iters": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "pbkdf2iters", "type": "object", "description": "Number of PBKDF2 iterations used for passphrase-based encryption keys.", "_name_": "pbkdf2iters", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "creation": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "creation", "type": "object", "description": "Timestamp when this dataset was created.", "_name_": "creation", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "snapdev": {"additionalProperties": false, "properties": {"parsed": {"description": "The ZFS property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": false}, "rawvalue": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The raw string value of the ZFS property as stored in the pool. Can be null if not set.", "title": "rawvalue", "_name_": "rawvalue", "_required_": false}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The current effective value of the ZFS property as a string. Can be null if inherited or not set.", "title": "value", "_name_": "value", "_required_": false}, "source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Indicates where the property value originates from.", "examples": ["LOCAL", "INHERITED", "DEFAULT"], "title": "source", "_name_": "source", "_required_": false}, "source_info": {"description": "Additional metadata about the property source, such as the parent dataset for inherited values.", "title": "source_info", "_name_": "source_info", "_required_": false}}, "title": "snapdev", "type": "object", "description": "Controls visibility of volume snapshots under /dev/zvol//.", "_name_": "snapdev", "_required_": false, "_attrs_order_": ["parsed", "rawvalue", "value", "source", "source_info"]}, "mountpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where this dataset is mounted. Null for unmounted datasets or volumes.", "title": "mountpoint", "_name_": "mountpoint", "_required_": false}}, "title": "result", "type": "object", "description": "The updated dataset information.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "type", "name", "pool", "encrypted", "encryption_root", "key_loaded", "children", "user_properties", "locked", "comments", "quota_warning", "quota_critical", "refquota_warning", "refquota_critical", "managedby", "deduplication", "aclmode", "acltype", "xattr", "atime", "casesensitivity", "checksum", "exec", "sync", "compression", "compressratio", "origin", "quota", "refquota", "reservation", "refreservation", "copies", "snapdir", "readonly", "recordsize", "sparse", "volsize", "volblocksize", "key_format", "encryption_algorithm", "used", "usedbychildren", "usedbydataset", "usedbyrefreservation", "usedbysnapshots", "available", "special_small_block_size", "pbkdf2iters", "creation", "snapdev", "mountpoint"]}]}, "pool.resilver.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the resilver schedule entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "begin": {"default": "18:00", "description": "Time when the resilver operations window begins (24-hour format).", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "9:00", "description": "Time when the resilver operations window ends (24-hour format).", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}, "enabled": {"default": true, "description": "Whether the resilver schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "weekday": {"default": [1, 2, 3, 4, 5, 6, 7], "description": "Array of weekdays when resilver operations are allowed (1=Monday through 7=Sunday).", "items": [{"maximum": 7, "minimum": 1, "type": "integer"}], "title": "weekday", "type": "array", "_name_": "weekday", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "begin", "end", "enabled", "weekday"]}]}, "pool.resilver.update": {"description": "Configure Pool Resilver Priority.\n\nIf `begin` time is greater than `end` time it means it will rollover the day, e.g.\nbegin = \"19:00\", end = \"05:00\" will increase pool resilver priority from 19:00 of one day\nuntil 05:00 of the next day.\n\n`weekday` follows crontab(5) values 0-7 (0 or 7 is Sun).\n\n", "cli_description": "Configure Pool Resilver Priority", "examples": {"websocket": ["\n\n Enable pool resilver priority all business days from 7PM to 5AM.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.resilver.update\",\n \"params\": [{\n \"enabled\": true,\n \"begin\": \"19:00\",\n \"end\": \"05:00\",\n \"weekday\": [1, 2, 3, 4, 5]\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"begin": {"description": "Time when the resilver operations window begins (24-hour format).", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"description": "Time when the resilver operations window ends (24-hour format).", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}, "enabled": {"description": "Whether the resilver schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "weekday": {"description": "Array of weekdays when resilver operations are allowed (1=Monday through 7=Sunday).", "items": [{"maximum": 7, "minimum": 1, "type": "integer"}], "title": "weekday", "type": "array", "_name_": "weekday", "_required_": false}}, "title": "data", "type": "object", "description": "The resilver schedule configuration to update.", "_name_": "data", "_required_": true, "_attrs_order_": ["begin", "end", "enabled", "weekday"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the resilver schedule entry.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "begin": {"default": "18:00", "description": "Time when the resilver operations window begins (24-hour format).", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "9:00", "description": "Time when the resilver operations window ends (24-hour format).", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}, "enabled": {"default": true, "description": "Whether the resilver schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "weekday": {"default": [1, 2, 3, 4, 5, 6, 7], "description": "Array of weekdays when resilver operations are allowed (1=Monday through 7=Sunday).", "items": [{"maximum": 7, "minimum": 1, "type": "integer"}], "title": "weekday", "type": "array", "_name_": "weekday", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "description": "The updated resilver schedule configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "begin", "end", "enabled", "weekday"]}]}, "pool.scrub.create": {"description": "Create a scrub task for a pool.\n\n`threshold` refers to the minimum amount of time in days has to be passed before\na scrub can run again.\n\n", "cli_description": "Create a scrub task for a pool", "examples": {"websocket": ["\n\n Create a scrub task for pool of id 1, to run every sunday but with a threshold of\n 35 days.\n The check will run at 3AM every sunday.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.scrub.create\"\n \"params\": [{\n \"pool\": 1,\n \"threshold\": 35,\n \"description\": \"Monthly scrub for tank\",\n \"schedule\": \"0 3 * * 7\",\n \"enabled\": true\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_SCRUB_WRITE", "POOL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": true}, "threshold": {"default": 35, "description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"default": "", "description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the scrub should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "00", "description": "Hour when the scrub should run (cron format).", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "7", "description": "Day of week when the scrub should run (cron format, 7=Sunday).", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when scrubs should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "enabled": {"default": true, "description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["pool"], "title": "data", "type": "object", "description": "Configuration for the new scrub schedule.", "_name_": "data", "_required_": true, "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled"]}], "returns": [{"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": true}, "threshold": {"default": 35, "description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"default": "", "description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the scrub should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "00", "description": "Hour when the scrub should run (cron format).", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "7", "description": "Day of week when the scrub should run (cron format, 7=Sunday).", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when scrubs should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "enabled": {"default": true, "description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the scrub schedule.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool_name": {"description": "Name of the pool being scrubbed.", "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": true}}, "required": ["pool", "id", "pool_name"], "title": "result", "type": "object", "description": "The newly created scrub schedule configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled", "id", "pool_name"]}]}, "pool.scrub.delete": {"description": "Delete scrub task of `id`.", "cli_description": "Delete scrub task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_SCRUB_WRITE", "POOL_WRITE"], "accepts": [{"description": "ID of the scrub schedule to delete.", "title": "id_", "type": "integer", "_name_": "id_", "_required_": true}], "returns": [{"const": true, "description": "Indicates successful deletion of the scrub schedule.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.scrub.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_SCRUB_READ", "POOL_SCRUB_WRITE", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": true}, "threshold": {"default": 35, "description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"default": "", "description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the scrub should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "00", "description": "Hour when the scrub should run (cron format).", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "7", "description": "Day of week when the scrub should run (cron format, 7=Sunday).", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when scrubs should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "enabled": {"default": true, "description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the scrub schedule.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool_name": {"description": "Name of the pool being scrubbed.", "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": true}}, "required": ["pool", "id", "pool_name"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled", "id", "pool_name"]}]}, "pool.scrub.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_READ", "POOL_SCRUB_READ", "POOL_SCRUB_WRITE", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": false}, "threshold": {"description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the scrub should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "00", "description": "Hour when the scrub should run (cron format).", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "7", "description": "Day of week when the scrub should run (cron format, 7=Sunday).", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when scrubs should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "enabled": {"description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the scrub schedule.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "pool_name": {"description": "Name of the pool being scrubbed.", "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": false}}, "title": "PoolScrubQueryResultItem", "type": "object", "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled", "id", "pool_name"]}], "type": "array"}, {"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": false}, "threshold": {"description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"description": "Cron schedule for when scrubs should run.", "title": "schedule", "_name_": "schedule", "_required_": false}, "enabled": {"description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the scrub schedule.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "pool_name": {"description": "Name of the pool being scrubbed.", "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": false}}, "title": "PoolScrubQueryResultItem", "type": "object", "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled", "id", "pool_name"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "pool.scrub.run": {"description": "Initiate a scrub of a pool `name` if last scrub was performed more than `threshold` days before.", "cli_description": "Initiate a scrub of a pool `name` if last scrub was performed more than `threshold` days before", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE"], "accepts": [{"description": "Name of the pool to run scrub on.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, {"default": 35, "description": "Days before a scrub is due when the scrub should start.", "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}], "returns": [{"description": "Returns `null` on successful scrub start.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.scrub.scrub": {"description": "Start/Stop/Pause a scrub on pool `name`.", "cli_description": "Start/Stop/Pause a scrub on pool `name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["POOL_WRITE"], "accepts": [{"description": "Name of the pool to perform scrub action on.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, {"default": "START", "description": "The scrub action to perform on the pool.", "enum": ["START", "STOP", "PAUSE"], "title": "action", "type": "string", "_name_": "action", "_required_": false}], "returns": [{"description": "Returns `null` on successful scrub action.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.scrub.update": {"description": "Update scrub task of `id`.", "cli_description": "Update scrub task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_SCRUB_WRITE", "POOL_WRITE"], "accepts": [{"description": "ID of the scrub schedule to update.", "title": "id_", "type": "integer", "_name_": "id_", "_required_": true}, {"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": false}, "threshold": {"description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the scrub should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "00", "description": "Hour when the scrub should run (cron format).", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "7", "description": "Day of week when the scrub should run (cron format, 7=Sunday).", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when scrubs should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "enabled": {"description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for the scrub schedule.", "_name_": "data", "_required_": true, "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled"]}], "returns": [{"additionalProperties": false, "properties": {"pool": {"description": "ID of the pool to scrub.", "exclusiveMinimum": 0, "title": "pool", "type": "integer", "_name_": "pool", "_required_": true}, "threshold": {"default": 35, "description": "Days before a scrub is due when a scrub should automatically start.", "minimum": 0, "title": "threshold", "type": "integer", "_name_": "threshold", "_required_": false}, "description": {"default": "", "description": "Description or notes for this scrub schedule.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the scrub should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "00", "description": "Hour when the scrub should run (cron format).", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "7", "description": "Day of week when the scrub should run (cron format, 7=Sunday).", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when scrubs should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "enabled": {"default": true, "description": "Whether this scrub schedule is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "id": {"description": "Unique identifier for the scrub schedule.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool_name": {"description": "Name of the pool being scrubbed.", "title": "pool_name", "type": "string", "_name_": "pool_name", "_required_": true}}, "required": ["pool", "id", "pool_name"], "title": "result", "type": "object", "description": "The updated scrub schedule configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["pool", "threshold", "description", "schedule", "enabled", "id", "pool_name"]}]}, "pool.snapshot.clone": {"description": "Clone a given snapshot to a new dataset.", "cli_description": "Clone a given snapshot to a new dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_WRITE", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"snapshot": {"description": "Full name of the snapshot to clone from.", "minLength": 1, "title": "snapshot", "type": "string", "_name_": "snapshot", "_required_": true}, "dataset_dst": {"description": "Name for the new dataset created from the snapshot.", "minLength": 1, "title": "dataset_dst", "type": "string", "_name_": "dataset_dst", "_required_": true}, "dataset_properties": {"default": {}, "description": "Object mapping ZFS property names to values to set on the cloned dataset.", "title": "dataset_properties", "type": "object", "_name_": "dataset_properties", "_required_": false}}, "required": ["snapshot", "dataset_dst"], "title": "data", "type": "object", "description": "PoolSnapshotCloneArgs parameters.", "_name_": "data", "_required_": true, "_attrs_order_": ["snapshot", "dataset_dst", "dataset_properties"]}], "returns": [{"const": true, "description": "Clone succeeded.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.snapshot.create": {"description": "Take a snapshot from a given dataset.", "cli_description": "Take a snapshot from a given dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"anyOf": [{"additionalProperties": false, "properties": {"dataset": {"description": "Name of the dataset to create a snapshot of.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "vmware_sync": {"default": false, "description": "Whether to sync VMware VMs before taking the snapshot.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": false}, "properties": {"type": "object", "default": {}, "description": "Object mapping ZFS property names to values to set on the snapshot.", "title": "properties", "_name_": "properties", "_required_": false}, "name": {"description": "Explicit name for the snapshot.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["dataset", "name"], "title": "PoolSnapshotCreateWithName", "type": "object", "_attrs_order_": ["dataset", "recursive", "exclude", "vmware_sync", "properties", "name"]}, {"additionalProperties": false, "properties": {"dataset": {"description": "Name of the dataset to create a snapshot of.", "minLength": 1, "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "vmware_sync": {"default": false, "description": "Whether to sync VMware VMs before taking the snapshot.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": false}, "properties": {"type": "object", "default": {}, "description": "Object mapping ZFS property names to values to set on the snapshot.", "title": "properties", "_name_": "properties", "_required_": false}, "naming_schema": {"description": "Naming schema pattern to generate the snapshot name automatically.", "minLength": 1, "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": true}}, "required": ["dataset", "naming_schema"], "title": "PoolSnapshotCreateWithSchema", "type": "object", "_attrs_order_": ["dataset", "recursive", "exclude", "vmware_sync", "properties", "naming_schema"]}], "description": "Configuration for creating a snapshot with either an explicit name or naming schema.", "title": "data", "_name_": "data", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Full snapshot identifier including dataset and snapshot name.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "properties": {"type": "object", "additionalProperties": {"additionalProperties": false, "properties": {"value": {"description": "Current effective value of the ZFS property as a string.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "rawvalue": {"description": "Raw string value of the ZFS property as stored.", "title": "rawvalue", "type": "string", "_name_": "rawvalue", "_required_": true}, "source": {"description": "Source of the property value.\n\n* `NONE`: Property is not set\n* `DEFAULT`: Using ZFS default value\n* `LOCAL`: Set locally on this snapshot\n* `TEMPORARY`: Temporary override value\n* `INHERITED`: Inherited from parent dataset\n* `RECEIVED`: Set by ZFS receive operation", "enum": ["NONE", "DEFAULT", "LOCAL", "TEMPORARY", "INHERITED", "RECEIVED"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "parsed": {"description": "Property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": true}}, "required": ["value", "rawvalue", "source", "parsed"], "title": "PoolSnapshotEntryPropertyFields", "type": "object", "_attrs_order_": ["value", "rawvalue", "source", "parsed"]}, "description": "Object mapping ZFS property names to their values and metadata.", "title": "properties", "_name_": "properties", "_required_": true}, "pool": {"description": "Name of the ZFS pool containing this snapshot.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}, "name": {"description": "Full name of the snapshot including dataset path.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SNAPSHOT", "description": "Type identifier indicating this is a ZFS snapshot.", "enum": ["SNAPSHOT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "snapshot_name": {"description": "Just the snapshot name portion without the dataset path.", "title": "snapshot_name", "type": "string", "_name_": "snapshot_name", "_required_": true}, "dataset": {"description": "Name of the dataset this snapshot was taken from.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "createtxg": {"description": "Transaction group ID when the snapshot was created.", "title": "createtxg", "type": "string", "_name_": "createtxg", "_required_": true}}, "required": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg"], "title": "result", "type": "object", "description": "Information about the newly created snapshot.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg"]}]}, "pool.snapshot.delete": {"description": null, "cli_description": "", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SNAPSHOT_DELETE"], "accepts": [{"description": "ID of the snapshot to delete.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"defer": {"default": false, "description": "Defer deletion of the snapshot.", "title": "defer", "type": "boolean", "_name_": "defer", "_required_": false}, "recursive": {"default": false, "description": "Whether to recursively delete child snapshots.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling snapshot deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["defer", "recursive"]}], "returns": [{"const": true, "description": "Indicates successful snapshot deletion.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.snapshot.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_READ", "SNAPSHOT_WRITE"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Full snapshot identifier including dataset and snapshot name.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "properties": {"type": "object", "additionalProperties": {"additionalProperties": false, "properties": {"value": {"description": "Current effective value of the ZFS property as a string.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "rawvalue": {"description": "Raw string value of the ZFS property as stored.", "title": "rawvalue", "type": "string", "_name_": "rawvalue", "_required_": true}, "source": {"description": "Source of the property value.\n\n* `NONE`: Property is not set\n* `DEFAULT`: Using ZFS default value\n* `LOCAL`: Set locally on this snapshot\n* `TEMPORARY`: Temporary override value\n* `INHERITED`: Inherited from parent dataset\n* `RECEIVED`: Set by ZFS receive operation", "enum": ["NONE", "DEFAULT", "LOCAL", "TEMPORARY", "INHERITED", "RECEIVED"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "parsed": {"description": "Property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": true}}, "required": ["value", "rawvalue", "source", "parsed"], "title": "PoolSnapshotEntryPropertyFields", "type": "object", "_attrs_order_": ["value", "rawvalue", "source", "parsed"]}, "description": "Object mapping ZFS property names to their values and metadata.", "title": "properties", "_name_": "properties", "_required_": true}, "pool": {"description": "Name of the ZFS pool containing this snapshot.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}, "name": {"description": "Full name of the snapshot including dataset path.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SNAPSHOT", "description": "Type identifier indicating this is a ZFS snapshot.", "enum": ["SNAPSHOT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "snapshot_name": {"description": "Just the snapshot name portion without the dataset path.", "title": "snapshot_name", "type": "string", "_name_": "snapshot_name", "_required_": true}, "dataset": {"description": "Name of the dataset this snapshot was taken from.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "createtxg": {"description": "Transaction group ID when the snapshot was created.", "title": "createtxg", "type": "string", "_name_": "createtxg", "_required_": true}, "holds": {"additionalProperties": false, "properties": {"truenas": {"description": "Present if a hold has been placed on the snapshot.", "title": "truenas", "type": "integer", "_name_": "truenas", "_required_": false}}, "title": "holds", "type": "object", "description": "Returned when options.extra.holds is set.", "_name_": "holds", "_required_": false, "_attrs_order_": ["truenas"]}, "retention": {"anyOf": [{"discriminator": {"mapping": {"periodic_snapshot_task": "#/$defs/PoolSnapshotRetentionPST", "property": "#/$defs/PoolSnapshotRetentionProperty"}, "propertyName": "source"}, "oneOf": [{"additionalProperties": false, "properties": {"datetime": {"description": "Timestamp when the snapshot will be eligible for removal.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "source": {"const": "periodic_snapshot_task", "description": "Indicates retention is managed by a periodic snapshot task.", "enum": ["periodic_snapshot_task"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "periodic_snapshot_task_id": {"description": "ID of the periodic snapshot task managing this retention.", "title": "periodic_snapshot_task_id", "type": "integer", "_name_": "periodic_snapshot_task_id", "_required_": true}}, "required": ["datetime", "source", "periodic_snapshot_task_id"], "title": "PoolSnapshotRetentionPST", "type": "object", "_attrs_order_": ["datetime", "source", "periodic_snapshot_task_id"]}, {"additionalProperties": false, "properties": {"datetime": {"description": "Timestamp when the snapshot will be eligible for removal.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "source": {"const": "property", "description": "Indicates retention is managed by ZFS properties.", "enum": ["property"], "title": "source", "type": "string", "_name_": "source", "_required_": true}}, "required": ["datetime", "source"], "title": "PoolSnapshotRetentionProperty", "type": "object", "_attrs_order_": ["datetime", "source"]}]}, {"type": "null"}], "description": "Returned when options.extra.retention is set.", "title": "retention", "_name_": "retention", "_required_": false}}, "required": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg", "holds", "retention"]}]}, "pool.snapshot.hold": {"description": "Hold snapshot `id`.\n\nAdd `truenas` tag to the snapshot's tag namespace.", "cli_description": "Hold snapshot `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"description": "ID of the snapshot to hold.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"recursive": {"default": false, "description": "Hold snapshots recursively.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling snapshot hold behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["recursive"]}], "returns": [{"description": "Returns `null` on successful snapshot hold.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.snapshot.query": {"description": "Query all ZFS Snapshots with `query-filters` and `query-options`.\n\n`query-options.extra.holds` *(bool)*\n Include hold tags for snapshots in the query result (false by default).\n`query-options.extra.min_txg` *(int)*\n Limit snapshot retrieval based on minimum transaction group.\n`query-options.extra.max_txg` *(int)*\n Limit snapshot retrieval based on maximum transaction group.\n`query-options.extra.retention` *(bool)*\n Include retention information in the query result (false by default).\n`query-options.extra.properties` *(dict)*\n Passed to `zfs.snapshots_serialized.props`.", "cli_description": "Query all ZFS Snapshots with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_READ", "SNAPSHOT_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Full snapshot identifier including dataset and snapshot name.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "properties": {"type": "object", "additionalProperties": {"additionalProperties": false, "properties": {"value": {"description": "Current effective value of the ZFS property as a string.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "rawvalue": {"description": "Raw string value of the ZFS property as stored.", "title": "rawvalue", "type": "string", "_name_": "rawvalue", "_required_": true}, "source": {"description": "Source of the property value.\n\n* `NONE`: Property is not set\n* `DEFAULT`: Using ZFS default value\n* `LOCAL`: Set locally on this snapshot\n* `TEMPORARY`: Temporary override value\n* `INHERITED`: Inherited from parent dataset\n* `RECEIVED`: Set by ZFS receive operation", "enum": ["NONE", "DEFAULT", "LOCAL", "TEMPORARY", "INHERITED", "RECEIVED"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "parsed": {"description": "Property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": true}}, "required": ["value", "rawvalue", "source", "parsed"], "title": "PoolSnapshotEntryPropertyFields", "type": "object", "_attrs_order_": ["value", "rawvalue", "source", "parsed"]}, "description": "Object mapping ZFS property names to their values and metadata.", "title": "properties", "_name_": "properties", "_required_": false}, "pool": {"description": "Name of the ZFS pool containing this snapshot.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "name": {"description": "Full name of the snapshot including dataset path.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"const": "SNAPSHOT", "description": "Type identifier indicating this is a ZFS snapshot.", "enum": ["SNAPSHOT"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "snapshot_name": {"description": "Just the snapshot name portion without the dataset path.", "title": "snapshot_name", "type": "string", "_name_": "snapshot_name", "_required_": false}, "dataset": {"description": "Name of the dataset this snapshot was taken from.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "createtxg": {"description": "Transaction group ID when the snapshot was created.", "title": "createtxg", "type": "string", "_name_": "createtxg", "_required_": false}, "holds": {"additionalProperties": false, "properties": {"truenas": {"description": "Present if a hold has been placed on the snapshot.", "title": "truenas", "type": "integer", "_name_": "truenas", "_required_": false}}, "title": "holds", "type": "object", "description": "Returned when options.extra.holds is set.", "_name_": "holds", "_required_": false, "_attrs_order_": ["truenas"]}, "retention": {"anyOf": [{"discriminator": {"mapping": {"periodic_snapshot_task": "#/$defs/PoolSnapshotRetentionPST", "property": "#/$defs/PoolSnapshotRetentionProperty"}, "propertyName": "source"}, "oneOf": [{"additionalProperties": false, "properties": {"datetime": {"description": "Timestamp when the snapshot will be eligible for removal.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "source": {"const": "periodic_snapshot_task", "description": "Indicates retention is managed by a periodic snapshot task.", "enum": ["periodic_snapshot_task"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "periodic_snapshot_task_id": {"description": "ID of the periodic snapshot task managing this retention.", "title": "periodic_snapshot_task_id", "type": "integer", "_name_": "periodic_snapshot_task_id", "_required_": true}}, "required": ["datetime", "source", "periodic_snapshot_task_id"], "title": "PoolSnapshotRetentionPST", "type": "object", "_attrs_order_": ["datetime", "source", "periodic_snapshot_task_id"]}, {"additionalProperties": false, "properties": {"datetime": {"description": "Timestamp when the snapshot will be eligible for removal.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "source": {"const": "property", "description": "Indicates retention is managed by ZFS properties.", "enum": ["property"], "title": "source", "type": "string", "_name_": "source", "_required_": true}}, "required": ["datetime", "source"], "title": "PoolSnapshotRetentionProperty", "type": "object", "_attrs_order_": ["datetime", "source"]}]}, {"type": "null"}], "description": "Returned when options.extra.retention is set.", "title": "retention", "_name_": "retention", "_required_": false}}, "title": "PoolSnapshotQueryResultItem", "type": "object", "_attrs_order_": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg", "holds", "retention"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Full snapshot identifier including dataset and snapshot name.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "properties": {"type": "object", "additionalProperties": {}, "description": "Object mapping ZFS property names to their values and metadata.", "title": "properties", "_name_": "properties", "_required_": false}, "pool": {"description": "Name of the ZFS pool containing this snapshot.", "title": "pool", "type": "string", "_name_": "pool", "_required_": false}, "name": {"description": "Full name of the snapshot including dataset path.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"const": "SNAPSHOT", "description": "Type identifier indicating this is a ZFS snapshot.", "enum": ["SNAPSHOT"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "snapshot_name": {"description": "Just the snapshot name portion without the dataset path.", "title": "snapshot_name", "type": "string", "_name_": "snapshot_name", "_required_": false}, "dataset": {"description": "Name of the dataset this snapshot was taken from.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "createtxg": {"description": "Transaction group ID when the snapshot was created.", "title": "createtxg", "type": "string", "_name_": "createtxg", "_required_": false}, "holds": {"description": "Returned when options.extra.holds is set.", "title": "holds", "_name_": "holds", "_required_": false}, "retention": {"anyOf": [{"discriminator": {"mapping": {"periodic_snapshot_task": "#/$defs/PoolSnapshotRetentionPST", "property": "#/$defs/PoolSnapshotRetentionProperty"}, "propertyName": "source"}, "oneOf": [{}, {}]}, {"type": "null"}], "description": "Returned when options.extra.retention is set.", "title": "retention", "_name_": "retention", "_required_": false}}, "title": "PoolSnapshotQueryResultItem", "type": "object", "_attrs_order_": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg", "holds", "retention"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "pool.snapshot.release": {"description": "Release hold on snapshot `id`.\n\nRemove all hold tags from the specified snapshot.", "cli_description": "Release hold on snapshot `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"description": "ID of the held snapshot to release.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"recursive": {"default": false, "description": "Whether to recursively release holds on child snapshots. Only the tags that are present on the parent snapshot will be removed.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling snapshot release behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["recursive"]}], "returns": [{"description": "Returns `null` on successful snapshot release.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.snapshot.rename": {"description": "Rename a snapshot `id` to `new_name`.\n\nNo safety checks are performed when renaming ZFS resources. If the dataset is in use by services such\nas SMB, iSCSI, snapshot tasks, replication, or cloud sync, renaming may cause disruptions or service failures.\n\nProceed only if you are certain the ZFS resource is not in use and fully understand the risks.\nSet Force to continue.", "cli_description": "Rename a snapshot `id` to `new_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"description": "Current ID of the snapshot to rename.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"new_name": {"description": "The new name for the snapshot.", "minLength": 1, "title": "new_name", "type": "string", "_name_": "new_name", "_required_": true}, "force": {"default": false, "description": "This operation does not check whether the dataset is currently in use. Renaming an active dataset may disrupt SMB shares, iSCSI targets, snapshots, replication, and other services.\n\nSet Force only if you understand and accept the risks.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "required": ["new_name"], "title": "options", "type": "object", "description": "The rename operation options including the new name and force flag.", "_name_": "options", "_required_": true, "_attrs_order_": ["new_name", "force"]}], "returns": [{"description": "Returns `null` on successful snapshot rename.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.snapshot.rollback": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["POOL_WRITE", "REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"description": "ID of the snapshot to rollback to.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"recursive": {"default": false, "description": "Destroy any snapshots and bookmarks more recent than the one specified.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "recursive_clones": {"default": false, "description": "Just like `recursive`, but also destroy any clones.", "title": "recursive_clones", "type": "boolean", "_name_": "recursive_clones", "_required_": false}, "force": {"default": false, "description": "Force unmount of any clones.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "recursive_rollback": {"default": false, "description": "Do a complete recursive rollback of each child snapshot for `id`. If any child does not have specified snapshot, this operation will fail.", "title": "recursive_rollback", "type": "boolean", "_name_": "recursive_rollback", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling snapshot rollback behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["recursive", "recursive_clones", "force", "recursive_rollback"]}], "returns": [{"description": "Returns `null` on successful snapshot rollback.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.snapshot.update": {"description": null, "cli_description": "", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_WRITE"], "accepts": [{"description": "ID of the snapshot to update.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"user_properties_update": {"default": [], "description": "Properties to update.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "The property name in namespace:property format.", "pattern": ".*:.*", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "value": {"description": "The new value to assign to the user property.", "title": "value", "type": "string", "_name_": "value", "_required_": true}}, "required": ["key", "value"], "title": "PoolSnapshotUserPropertyUpdate", "type": "object", "_attrs_order_": ["key", "value"]}], "title": "user_properties_update", "type": "array", "_name_": "user_properties_update", "_required_": false}, "user_properties_remove": {"default": [], "description": "Properties to remove.", "items": [{"description": "ZFS user property key in namespace:property format (e.g., 'custom:backup_policy', 'org:created_by').", "pattern": ".*:.*", "type": "string"}], "title": "user_properties_remove", "type": "array", "_name_": "user_properties_remove", "_required_": false}}, "title": "data", "type": "object", "description": "The property updates to apply to the snapshot.", "_name_": "data", "_required_": true, "_attrs_order_": ["user_properties_update", "user_properties_remove"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Full snapshot identifier including dataset and snapshot name.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "properties": {"type": "object", "additionalProperties": {"additionalProperties": false, "properties": {"value": {"description": "Current effective value of the ZFS property as a string.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "rawvalue": {"description": "Raw string value of the ZFS property as stored.", "title": "rawvalue", "type": "string", "_name_": "rawvalue", "_required_": true}, "source": {"description": "Source of the property value.\n\n* `NONE`: Property is not set\n* `DEFAULT`: Using ZFS default value\n* `LOCAL`: Set locally on this snapshot\n* `TEMPORARY`: Temporary override value\n* `INHERITED`: Inherited from parent dataset\n* `RECEIVED`: Set by ZFS receive operation", "enum": ["NONE", "DEFAULT", "LOCAL", "TEMPORARY", "INHERITED", "RECEIVED"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "parsed": {"description": "Property value parsed into the appropriate type (string, boolean, integer, etc.).", "title": "parsed", "_name_": "parsed", "_required_": true}}, "required": ["value", "rawvalue", "source", "parsed"], "title": "PoolSnapshotEntryPropertyFields", "type": "object", "_attrs_order_": ["value", "rawvalue", "source", "parsed"]}, "description": "Object mapping ZFS property names to their values and metadata.", "title": "properties", "_name_": "properties", "_required_": true}, "pool": {"description": "Name of the ZFS pool containing this snapshot.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}, "name": {"description": "Full name of the snapshot including dataset path.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"const": "SNAPSHOT", "description": "Type identifier indicating this is a ZFS snapshot.", "enum": ["SNAPSHOT"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "snapshot_name": {"description": "Just the snapshot name portion without the dataset path.", "title": "snapshot_name", "type": "string", "_name_": "snapshot_name", "_required_": true}, "dataset": {"description": "Name of the dataset this snapshot was taken from.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "createtxg": {"description": "Transaction group ID when the snapshot was created.", "title": "createtxg", "type": "string", "_name_": "createtxg", "_required_": true}}, "required": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg"], "title": "result", "type": "object", "description": "Information about the updated snapshot.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "properties", "pool", "name", "type", "snapshot_name", "dataset", "createtxg"]}]}, "pool.snapshottask.create": {"description": "Create a Periodic Snapshot Task\n\nCreate a Periodic Snapshot Task that will take snapshots of specified `dataset` at specified `schedule`.\nRecursive snapshots can be created if `recursive` flag is enabled. You can `exclude` specific child datasets\nor zvols from the snapshot.\nSnapshots will be automatically destroyed after a certain amount of time, specified by\n`lifetime_value` and `lifetime_unit`.\nIf multiple periodic tasks create snapshots at the same time (for example hourly and daily at 00:00) the snapshot\nwill be kept until the last of these tasks reaches its expiry time.\nSnapshots will be named according to `naming_schema` which is a `strftime`-like template for snapshot name\nand must contain `%Y`, `%m`, `%d`, `%H` and `%M`.\n\n", "cli_description": "Create a Periodic Snapshot Task", "examples": {"websocket": ["\n\n Create a recursive Periodic Snapshot Task for dataset `data/work` excluding `data/work/temp`. Snapshots\n will be created on weekdays every hour from 09:00 to 18:00 and will be stored for two weeks.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.snapshottask.create\",\n \"params\": [{\n \"dataset\": \"data/work\",\n \"recursive\": true,\n \"exclude\": [\"data/work/temp\"],\n \"lifetime_value\": 2,\n \"lifetime_unit\": \"WEEK\",\n \"naming_schema\": \"auto_%Y-%m-%d_%H-%M\",\n \"schedule\": {\n \"minute\": \"0\",\n \"hour\": \"*\",\n \"dom\": \"*\",\n \"month\": \"*\",\n \"dow\": \"1,2,3,4,5\",\n \"begin\": \"09:00\",\n \"end\": \"18:00\"\n }\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}}, "required": ["dataset"], "title": "data", "type": "object", "description": "Configuration for the new periodic snapshot task.", "_name_": "data", "_required_": true, "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule"]}], "returns": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Detailed state information for the task.", "title": "state", "_name_": "state", "_required_": true}, "vmware_sync": {"description": "Whether VMware VMs are synced before taking snapshots.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": true}}, "required": ["dataset", "id", "state", "vmware_sync"], "title": "result", "type": "object", "description": "The newly created periodic snapshot task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state", "vmware_sync"]}]}, "pool.snapshottask.delete": {"description": "Delete a Periodic Snapshot Task with specific `id`\n\n", "cli_description": "Delete a Periodic Snapshot Task with specific `id`", "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.snapshottask.delete\",\n \"params\": [\n 1\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the periodic snapshot task to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"fixate_removal_date": {"default": false, "description": "Whether to fix the removal date of existing snapshots when the task is deleted.", "title": "fixate_removal_date", "type": "boolean", "_name_": "fixate_removal_date", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling task deletion behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["fixate_removal_date"]}], "returns": [{"const": true, "description": "Indicates successful deletion of the periodic snapshot task.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "pool.snapshottask.delete_will_change_retention_for": {"description": "Returns a list of snapshots which will change the retention if periodic snapshot task `id` is deleted.", "cli_description": "Returns a list of snapshots which will change the retention if periodic snapshot task `id` is deleted", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the periodic snapshot task to analyze for deletion impact.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"additionalProperties": {"items": [{"type": "string"}], "type": "array"}, "description": "Object mapping retention change types to arrays of snapshots that would be affected by task deletion.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "pool.snapshottask.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Detailed state information for the task.", "title": "state", "_name_": "state", "_required_": true}, "vmware_sync": {"description": "Whether VMware VMs are synced before taking snapshots.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": true}}, "required": ["dataset", "id", "state", "vmware_sync"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state", "vmware_sync"]}]}, "pool.snapshottask.max_count": {"description": "Returns a maximum amount of snapshots (per-dataset) the system can sustain.", "cli_description": "Returns a maximum amount of snapshots (per-dataset) the system can sustain", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [], "returns": [{"description": "Maximum number of periodic snapshot tasks allowed.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "pool.snapshottask.max_total_count": {"description": "Returns a maximum amount of snapshots (total) the system can sustain.", "cli_description": "Returns a maximum amount of snapshots (total) the system can sustain", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [], "returns": [{"description": "Maximum total number of snapshots allowed across all tasks.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "pool.snapshottask.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "recursive": {"description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "state": {"description": "Detailed state information for the task.", "title": "state", "_name_": "state", "_required_": false}, "vmware_sync": {"description": "Whether VMware VMs are synced before taking snapshots.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": false}}, "title": "PoolSnapshotTaskQueryResultItem", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state", "vmware_sync"]}], "type": "array"}, {"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "recursive": {"description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"description": "Cron schedule for when snapshots should be taken.", "title": "schedule", "_name_": "schedule", "_required_": false}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "state": {"description": "Detailed state information for the task.", "title": "state", "_name_": "state", "_required_": false}, "vmware_sync": {"description": "Whether VMware VMs are synced before taking snapshots.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": false}}, "title": "PoolSnapshotTaskQueryResultItem", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state", "vmware_sync"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "pool.snapshottask.run": {"description": "Execute a Periodic Snapshot Task of `id`.", "cli_description": "Execute a Periodic Snapshot Task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the periodic snapshot task to run immediately.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful task execution.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "pool.snapshottask.update": {"description": "Update a Periodic Snapshot Task with specific `id`\n\nSee the documentation for `create` method for information on payload contents\n\n", "cli_description": "Update a Periodic Snapshot Task with specific `id`", "examples": {"websocket": ["\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"pool.snapshottask.update\",\n \"params\": [\n 1,\n {\n \"dataset\": \"data/work\",\n \"recursive\": true,\n \"exclude\": [\"data/work/temp\"],\n \"lifetime_value\": 2,\n \"lifetime_unit\": \"WEEK\",\n \"naming_schema\": \"auto_%Y-%m-%d_%H-%M\",\n \"schedule\": {\n \"minute\": \"0\",\n \"hour\": \"*\",\n \"dom\": \"*\",\n \"month\": \"*\",\n \"dow\": \"1,2,3,4,5\",\n \"begin\": \"09:00\",\n \"end\": \"18:00\"\n }\n }\n ]\n }"]}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the periodic snapshot task to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "recursive": {"description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "fixate_removal_date": {"description": "Whether to fix the removal date of existing snapshots when retention settings change.", "title": "fixate_removal_date", "type": "boolean", "_name_": "fixate_removal_date", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for the periodic snapshot task.", "_name_": "data", "_required_": true, "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "fixate_removal_date"]}], "returns": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Detailed state information for the task.", "title": "state", "_name_": "state", "_required_": true}, "vmware_sync": {"description": "Whether VMware VMs are synced before taking snapshots.", "title": "vmware_sync", "type": "boolean", "_name_": "vmware_sync", "_required_": true}}, "required": ["dataset", "id", "state", "vmware_sync"], "title": "result", "type": "object", "description": "The updated periodic snapshot task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state", "vmware_sync"]}]}, "pool.snapshottask.update_will_change_retention_for": {"description": "Returns a list of snapshots which will change the retention if periodic snapshot task `id` is updated\nwith `data`.", "cli_description": "Returns a list of snapshots which will change the retention if periodic snapshot task `id` is updated with `data`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the periodic snapshot task to analyze.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": false}, "recursive": {"description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}}, "title": "data", "type": "object", "description": "Proposed configuration changes to analyze.", "_name_": "data", "_required_": true, "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule"]}], "returns": [{"additionalProperties": {"items": [{"type": "string"}], "type": "array"}, "description": "Object mapping retention change types to arrays of affected snapshot names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "privilege.create": {"description": "Creates a privilege.\n\n`name` is a name for privilege (must be unique).\n\n`local_groups` is a list of local user account group GIDs that gain this privilege.\n\n`ds_groups` is list of Directory Service group GIDs that will gain this privilege.\n\n`roles` is a list of roles to be assigned to the privilege\n\n`web_shell` controls whether users with this privilege are allowed to log in to the Web UI.", "cli_description": "Creates a privilege", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["PRIVILEGE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "local_groups": {"default": [], "description": "Array of local group IDs to assign to this privilege.", "items": [{"type": "integer"}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": false}, "ds_groups": {"default": [], "description": "Array of directory service group IDs or SIDs to assign to this privilege.", "items": [{"anyOf": [{"type": "integer"}, {"type": "string"}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": false}, "roles": {"default": [], "description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": true}}, "required": ["name", "web_shell"], "title": "privilege_create", "type": "object", "description": "Configuration for creating a new privilege.", "_name_": "privilege_create", "_required_": true, "_attrs_order_": ["name", "local_groups", "ds_groups", "roles", "web_shell"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the privilege.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the built-in privilege if this is a system privilege. `null` for custom privileges.", "title": "builtin_name", "_name_": "builtin_name", "_required_": true}, "name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "local_groups": {"description": "Array of local groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": true}, "ds_groups": {"description": "Array of directory service groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": true}, "roles": {"default": [], "description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": true}}, "required": ["id", "builtin_name", "name", "local_groups", "ds_groups", "web_shell"], "title": "result", "type": "object", "description": "The newly created privilege configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "builtin_name", "name", "local_groups", "ds_groups", "roles", "web_shell"]}]}, "privilege.delete": {"description": "Delete the privilege `id`.", "cli_description": "Delete the privilege `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["PRIVILEGE_WRITE"], "accepts": [{"description": "ID of the privilege to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Whether the privilege was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "privilege.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["PRIVILEGE_READ", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the privilege.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the built-in privilege if this is a system privilege. `null` for custom privileges.", "title": "builtin_name", "_name_": "builtin_name", "_required_": true}, "name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "local_groups": {"description": "Array of local groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": true}, "ds_groups": {"description": "Array of directory service groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": true}, "roles": {"default": [], "description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": true}}, "required": ["id", "builtin_name", "name", "local_groups", "ds_groups", "web_shell"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "builtin_name", "name", "local_groups", "ds_groups", "roles", "web_shell"]}]}, "privilege.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["PRIVILEGE_READ", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the privilege.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "builtin_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the built-in privilege if this is a system privilege. `null` for custom privileges.", "title": "builtin_name", "_name_": "builtin_name", "_required_": false}, "name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "local_groups": {"description": "Array of local groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": false}, "ds_groups": {"description": "Array of directory service groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": false}, "roles": {"description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": false}}, "title": "PrivilegeQueryResultItem", "type": "object", "_attrs_order_": ["id", "builtin_name", "name", "local_groups", "ds_groups", "roles", "web_shell"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the privilege.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "builtin_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the built-in privilege if this is a system privilege. `null` for custom privileges.", "title": "builtin_name", "_name_": "builtin_name", "_required_": false}, "name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "local_groups": {"description": "Array of local groups assigned to this privilege.", "items": [{"anyOf": [{}, {}]}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": false}, "ds_groups": {"description": "Array of directory service groups assigned to this privilege.", "items": [{"anyOf": [{}, {}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": false}, "roles": {"description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": false}}, "title": "PrivilegeQueryResultItem", "type": "object", "_attrs_order_": ["id", "builtin_name", "name", "local_groups", "ds_groups", "roles", "web_shell"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "privilege.roles": {"description": "Get all available roles.\n\nEach entry contains the following keys:\n\n`name` - the internal name of the role\n\n`includes` - list of other roles that this role includes. When user is\ngranted this role, they will also receive permissions granted by all\nthe included roles.\n\n`builtin` - role exists for internal backend purposes for access\ncontrol.", "cli_description": "Get all available roles", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"name": {"description": "Internal name of the role.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Human-readable title of the role.", "minLength": 1, "title": "title", "type": "string", "_name_": "title", "_required_": false}, "includes": {"description": "Array of other role names that this role includes.", "items": [{"minLength": 1, "type": "string"}], "title": "includes", "type": "array", "_name_": "includes", "_required_": false}, "builtin": {"description": "Whether this is a built-in system role.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "stig": {"anyOf": [{"description": "Currently we are only attempting to meet a single STIG (General Purpose\nOperating System). This enum is defined so that we have capability\nto expand if we decide to apply more specific STIGs to different areas\nof our product", "enum": [0, 1], "title": "STIGType", "type": "integer"}, {"type": "null"}], "description": "STIG compliance type for this role. `null` if not STIG-related.", "title": "stig", "_name_": "stig", "_required_": false}}, "title": "PrivilegeRolesQueryResultItem", "type": "object", "_attrs_order_": ["name", "title", "includes", "builtin", "stig"]}], "type": "array"}, {"additionalProperties": false, "properties": {"name": {"description": "Internal name of the role.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Human-readable title of the role.", "minLength": 1, "title": "title", "type": "string", "_name_": "title", "_required_": false}, "includes": {"description": "Array of other role names that this role includes.", "items": [{"minLength": 1, "type": "string"}], "title": "includes", "type": "array", "_name_": "includes", "_required_": false}, "builtin": {"description": "Whether this is a built-in system role.", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "stig": {"anyOf": [{}, {"type": "null"}], "description": "STIG compliance type for this role. `null` if not STIG-related.", "title": "stig", "_name_": "stig", "_required_": false}}, "title": "PrivilegeRolesQueryResultItem", "type": "object", "_attrs_order_": ["name", "title", "includes", "builtin", "stig"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "privilege.update": {"description": "Update the privilege `id`.", "cli_description": "Update the privilege `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["PRIVILEGE_WRITE"], "accepts": [{"description": "ID of the privilege to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "local_groups": {"description": "Array of local group IDs to assign to this privilege.", "items": [{"type": "integer"}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": false}, "ds_groups": {"description": "Array of directory service group IDs or SIDs to assign to this privilege.", "items": [{"anyOf": [{"type": "integer"}, {"type": "string"}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": false}, "roles": {"description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": false}}, "title": "privilege_update", "type": "object", "description": "Updated configuration for the privilege.", "_name_": "privilege_update", "_required_": true, "_attrs_order_": ["name", "local_groups", "ds_groups", "roles", "web_shell"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the privilege.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "builtin_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the built-in privilege if this is a system privilege. `null` for custom privileges.", "title": "builtin_name", "_name_": "builtin_name", "_required_": true}, "name": {"description": "Display name of the privilege.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "local_groups": {"description": "Array of local groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "local_groups", "type": "array", "_name_": "local_groups", "_required_": true}, "ds_groups": {"description": "Array of directory service groups assigned to this privilege.", "items": [{"anyOf": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the group. Use this ID for `group.update` and `group.delete` API calls. This ID also appears in the `groups` array for each user entry in `user.query` results.\n\nNOTE: For groups from a directory service, the `id` is calculated by adding 100000000 to the `gid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "gid": {"description": "A non-negative integer used to identify a group. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "gid", "type": "integer", "_name_": "gid", "_required_": true}, "name": {"description": "A string used to identify a group.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "builtin": {"description": "If `True`, the group is an internal system account for the TrueNAS server. Typically, one should create dedicated groups for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "sudo_commands": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"default": [], "description": "A list of commands that group members may execute with elevated privileges. User is not prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "smb": {"default": true, "description": "If set to `True`, the group can be used for SMB share ACL entries. The group is mapped to an NT group account on the TrueNAS SMB server and has a `sid` value. ", "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"const": "DIRECT", "enum": ["DIRECT"], "type": "string"}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Specifies the subgid mapping for this group. If DIRECT then the GID will be directly mapped to all containers. Alternatively, the target GID may be explicitly specified. If null, then the GID will not be mapped.\n\n**NOTE: This field will be ignored for groups that have been assigned TrueNAS roles.**", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "A string used to identify a group. Identical to the `name` key. ", "minLength": 1, "title": "group", "type": "string", "_name_": "group", "_required_": true}, "local": {"description": "If `True`, the group is local to the TrueNAS server. If `False`, the group is provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "roles": {"description": "List of roles assigned to this groups. Roles control administrative access to TrueNAS through the web UI and API. You can change group roles by using `privilege.create`, `privilege.update`, and `privilege.delete`. ", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "users": {"default": [], "description": "A list a API user identifiers for local users who are members of this group. These IDs match the `id` field from `user.query`.\n\nNOTE: This field is empty for groups that come from directory services (`local` is `False`). ", "items": [{"type": "integer"}], "title": "users", "type": "array", "_name_": "users", "_required_": false}, "immutable": {"description": "This is a read-only field showing if the group entry can be changed. If `True`, the group is immutable and cannot be changed. If `False`, the group can be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}}, "required": ["id", "gid", "name", "builtin", "group", "local", "sid", "roles", "immutable"], "title": "GroupEntry", "type": "object", "_attrs_order_": ["id", "gid", "name", "builtin", "sudo_commands", "sudo_commands_nopasswd", "smb", "userns_idmap", "group", "local", "sid", "roles", "users", "immutable"]}, {"additionalProperties": false, "properties": {"gid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Group ID if this is a local group that couldn't be mapped. `null` for directory service groups.", "title": "gid", "_name_": "gid", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Security identifier if this is a directory service group that couldn't be mapped. `null` for local groups.", "title": "sid", "_name_": "sid", "_required_": true}, "group": {"description": "Always `null` for unmapped groups.", "title": "group", "type": "null", "_name_": "group", "_required_": true}}, "required": ["gid", "sid", "group"], "title": "UnmappedGroupEntry", "type": "object", "_attrs_order_": ["gid", "sid", "group"]}]}], "title": "ds_groups", "type": "array", "_name_": "ds_groups", "_required_": true}, "roles": {"default": [], "description": "Array of role names included in this privilege.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "web_shell": {"description": "Whether this privilege grants access to the web shell.", "title": "web_shell", "type": "boolean", "_name_": "web_shell", "_required_": true}}, "required": ["id", "builtin_name", "name", "local_groups", "ds_groups", "web_shell"], "title": "result", "type": "object", "description": "The updated privilege configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "builtin_name", "name", "local_groups", "ds_groups", "roles", "web_shell"]}]}, "replication.count_eligible_manual_snapshots": {"description": "Count how many existing snapshots of `dataset` match `naming_schema`.", "cli_description": "Count how many existing snapshots of `dataset` match `naming_schema`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"additionalProperties": false, "properties": {"datasets": {"description": "Array of dataset names to count snapshots for.", "items": [{"type": "string"}], "minItems": 1, "title": "datasets", "type": "array", "_name_": "datasets", "_required_": true}, "naming_schema": {"default": [], "description": "Array of naming schema patterns to match against.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Regular expression to match snapshot names. `null` to match all names.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "transport": {"description": "Transport method to use for accessing snapshots.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED}, {"type": "null"}], "default": null, "description": "Keychain credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}}, "required": ["datasets", "transport"], "title": "count_eligible_manual_snapshots", "type": "object", "description": "ReplicationCountEligibleManualSnapshotsArgs parameters.", "_name_": "count_eligible_manual_snapshots", "_required_": true, "_attrs_order_": ["datasets", "naming_schema", "name_regex", "transport", "ssh_credential REDACTED}], "returns": [{"additionalProperties": false, "properties": {"total": {"description": "Total number of snapshots found.", "title": "total", "type": "integer", "_name_": "total", "_required_": true}, "eligible": {"description": "Number of snapshots eligible for replication.", "title": "eligible", "type": "integer", "_name_": "eligible", "_required_": true}}, "required": ["total", "eligible"], "title": "result", "type": "object", "description": "ReplicationCountEligibleManualSnapshotsResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["total", "eligible"]}]}, "replication.create": {"description": "Create a Replication Task that will push or pull ZFS snapshots to or from remote host.", "cli_description": "Create a Replication Task that will push or pull ZFS snapshots to or from remote host", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED}, {"type": "null"}], "default": null, "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"default": false, "description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "default": true, "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"default": [], "description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "default": {}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"default": false, "description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"default": false, "description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"default": [], "description": "List of periodic snapshot task IDs that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"type": "integer"}], "title": "periodic_snapshot_tasks", "type": "array", "uniqueItems": true, "_name_": "periodic_snapshot_tasks", "_required_": false}, "naming_schema": {"default": [], "description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"default": [], "description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": true}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"default": false, "description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"default": false, "description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"default": "SET", "description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"default": false, "description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": true}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"default": [], "description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "default": null, "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"default": true, "description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"default": false, "description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"default": true, "description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"default": 5, "description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"default": true, "description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "required": ["name", "direction", "transport", "source_datasets", "target_dataset", "recursive", "auto", "retention_policy"], "title": "replication_create", "type": "object", "description": "Configuration for creating a new replication task.", "_name_": "replication_create", "_required_": true, "_attrs_order_": ["name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this replication task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"default": false, "description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "default": true, "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"default": [], "description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "default": {}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"default": false, "description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"default": false, "description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot tasks that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Current state of the task.", "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["dataset", "id", "state"], "title": "PoolSnapshotTaskDBEntry", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state"]}], "title": "periodic_snapshot_tasks", "type": "array", "_name_": "periodic_snapshot_tasks", "_required_": true}, "naming_schema": {"default": [], "description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"default": [], "description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": true}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"default": false, "description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"default": false, "description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"default": "SET", "description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"default": false, "description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": true}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"default": [], "description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "default": null, "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"default": true, "description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"default": false, "description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"default": true, "description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"default": 5, "description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"default": true, "description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "state": {"description": "Current state information for the replication task.", "title": "state", "type": "object", "_name_": "state", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}, "has_encrypted_dataset_keys": {"description": "Whether this replication task has encrypted dataset keys available.", "title": "has_encrypted_dataset_keys", "type": "boolean", "_name_": "has_encrypted_dataset_keys", "_required_": true}}, "required": ["id", "name", "direction", "transport", "source_datasets", "target_dataset", "recursive", "periodic_snapshot_tasks", "auto", "retention_policy", "state", "job", "has_encrypted_dataset_keys"], "title": "result", "type": "object", "description": "The newly created replication task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled", "state", "job", "has_encrypted_dataset_keys"]}]}, "replication.create_dataset": {"description": "Creates dataset on remote side", "cli_description": "Creates dataset on remote side", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "Name of the dataset to create.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, {"description": "Transport method to use for dataset creation.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Keychain credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}], "returns": [{"description": "Returns `null` on successful dataset creation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "replication.delete": {"description": "Delete a Replication Task with specific `id`", "cli_description": "Delete a Replication Task with specific `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "ID of the replication task to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Whether the replication task was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "replication.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "REPLICATION_TASK_READ", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this replication task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"default": false, "description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "default": true, "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"default": [], "description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "default": {}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"default": false, "description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"default": false, "description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot tasks that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Current state of the task.", "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["dataset", "id", "state"], "title": "PoolSnapshotTaskDBEntry", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state"]}], "title": "periodic_snapshot_tasks", "type": "array", "_name_": "periodic_snapshot_tasks", "_required_": true}, "naming_schema": {"default": [], "description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"default": [], "description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": true}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"default": false, "description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"default": false, "description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"default": "SET", "description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"default": false, "description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": true}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"default": [], "description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "default": null, "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"default": true, "description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"default": false, "description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"default": true, "description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"default": 5, "description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"default": true, "description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "state": {"description": "Current state information for the replication task.", "title": "state", "type": "object", "_name_": "state", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}, "has_encrypted_dataset_keys": {"description": "Whether this replication task has encrypted dataset keys available.", "title": "has_encrypted_dataset_keys", "type": "boolean", "_name_": "has_encrypted_dataset_keys", "_required_": true}}, "required": ["id", "name", "direction", "transport", "source_datasets", "target_dataset", "recursive", "periodic_snapshot_tasks", "auto", "retention_policy", "state", "job", "has_encrypted_dataset_keys"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled", "state", "job", "has_encrypted_dataset_keys"]}]}, "replication.list_datasets": {"description": "List datasets on remote side", "cli_description": "List datasets on remote side", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "Transport method to use for listing datasets.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Keychain credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}], "returns": [{"description": "Array of dataset names available for replication.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "replication.list_naming_schemas": {"description": "List all naming schemas used in periodic snapshot and replication tasks.", "cli_description": "List all naming schemas used in periodic snapshot and replication tasks", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [], "returns": [{"description": "Array of available snapshot naming schema patterns.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "replication.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "REPLICATION_TASK_READ", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this replication task.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": false}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": false}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": false}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot tasks that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Current state of the task.", "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["dataset", "id", "state"], "title": "PoolSnapshotTaskDBEntry", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state"]}], "title": "periodic_snapshot_tasks", "type": "array", "_name_": "periodic_snapshot_tasks", "_required_": false}, "naming_schema": {"description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": false}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": false}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "state": {"description": "Current state information for the replication task.", "title": "state", "type": "object", "_name_": "state", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": false}, "has_encrypted_dataset_keys": {"description": "Whether this replication task has encrypted dataset keys available.", "title": "has_encrypted_dataset_keys", "type": "boolean", "_name_": "has_encrypted_dataset_keys", "_required_": false}}, "title": "ReplicationQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled", "state", "job", "has_encrypted_dataset_keys"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this replication task.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": false}, "ssh_credential REDACTED}, {"type": "null"}], "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": false}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": false}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot tasks that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{}], "title": "periodic_snapshot_tasks", "type": "array", "_name_": "periodic_snapshot_tasks", "_required_": false}, "naming_schema": {"description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": false}, "schedule": {"anyOf": [{}, {"type": "null"}], "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{}, {"type": "null"}], "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": false}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "state": {"description": "Current state information for the replication task.", "title": "state", "type": "object", "_name_": "state", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": false}, "has_encrypted_dataset_keys": {"description": "Whether this replication task has encrypted dataset keys available.", "title": "has_encrypted_dataset_keys", "type": "boolean", "_name_": "has_encrypted_dataset_keys", "_required_": false}}, "title": "ReplicationQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled", "state", "job", "has_encrypted_dataset_keys"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "replication.restore": {"description": "Create the opposite of replication task `id` (PULL if it was PUSH and vice versa).", "cli_description": "Create the opposite of replication task `id` (PULL if it was PUSH and vice versa)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "ID of the replication task to restore.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Name for the restored replication task.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "target_dataset": {"description": "Dataset path where the replication should be restored to.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}}, "required": ["name", "target_dataset"], "title": "replication_restore", "type": "object", "description": "Configuration options for restoring the replication task.", "_name_": "replication_restore", "_required_": true, "_attrs_order_": ["name", "target_dataset"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this replication task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"default": false, "description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "default": true, "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"default": [], "description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "default": {}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"default": false, "description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"default": false, "description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot tasks that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Current state of the task.", "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["dataset", "id", "state"], "title": "PoolSnapshotTaskDBEntry", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state"]}], "title": "periodic_snapshot_tasks", "type": "array", "_name_": "periodic_snapshot_tasks", "_required_": true}, "naming_schema": {"default": [], "description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"default": [], "description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": true}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"default": false, "description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"default": false, "description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"default": "SET", "description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"default": false, "description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": true}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"default": [], "description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "default": null, "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"default": true, "description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"default": false, "description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"default": true, "description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"default": 5, "description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"default": true, "description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "state": {"description": "Current state information for the replication task.", "title": "state", "type": "object", "_name_": "state", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}, "has_encrypted_dataset_keys": {"description": "Whether this replication task has encrypted dataset keys available.", "title": "has_encrypted_dataset_keys", "type": "boolean", "_name_": "has_encrypted_dataset_keys", "_required_": true}}, "required": ["id", "name", "direction", "transport", "source_datasets", "target_dataset", "recursive", "periodic_snapshot_tasks", "auto", "retention_policy", "state", "job", "has_encrypted_dataset_keys"], "title": "result", "type": "object", "description": "The restored replication task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled", "state", "job", "has_encrypted_dataset_keys"]}]}, "replication.run": {"description": "Run Replication Task of `id`.", "cli_description": "Run Replication Task of `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "ID of the replication task to run.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful replication task execution.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "replication.run_onetime": {"description": "Run replication task without creating it.", "cli_description": "Run replication task without creating it", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"additionalProperties": false, "properties": {"direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED}, {"type": "null"}], "default": null, "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"default": false, "description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "default": true, "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"default": [], "description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "default": {}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"default": false, "description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"default": false, "description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"default": [], "description": "List of periodic snapshot task IDs that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"type": "integer"}], "title": "periodic_snapshot_tasks", "type": "array", "uniqueItems": true, "_name_": "periodic_snapshot_tasks", "_required_": false}, "naming_schema": {"default": [], "description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"default": [], "description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "allow_from_scratch": {"default": false, "description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"default": "SET", "description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"default": false, "description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": true}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"default": [], "description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "default": null, "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"default": true, "description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"default": false, "description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"default": true, "description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"default": 5, "description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "exclude_mountpoint_property": {"default": true, "description": "Whether to exclude the mountpoint property from replication.", "title": "exclude_mountpoint_property", "type": "boolean", "_name_": "exclude_mountpoint_property", "_required_": false}, "only_from_scratch": {"default": false, "description": "If `true` then replication will fail if target dataset already exists.", "title": "only_from_scratch", "type": "boolean", "_name_": "only_from_scratch", "_required_": false}, "mount": {"default": true, "description": "Mount destination file system.", "title": "mount", "type": "boolean", "_name_": "mount", "_required_": false}}, "required": ["direction", "transport", "source_datasets", "target_dataset", "recursive", "retention_policy"], "title": "replication_run_onetime", "type": "object", "description": "ReplicationRunOnetimeArgs parameters.", "_name_": "replication_run_onetime", "_required_": true, "_attrs_order_": ["direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "restrict_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "exclude_mountpoint_property", "only_from_scratch", "mount"]}], "returns": [{"description": "Returns `null` on successful one-time replication execution.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "replication.target_unmatched_snapshots": {"description": "Check if target has any snapshots that do not exist on source. Returns these snapshots grouped by dataset.", "cli_description": "Check if target has any snapshots that do not exist on source", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "Direction of replication to check for unmatched snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, {"description": "Array of source dataset names.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, {"description": "Target dataset name to check for unmatched snapshots.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, {"description": "Transport method to use for accessing snapshots.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Keychain credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object mapping dataset names to arrays of unmatched snapshot names on the target side.", "examples": [{"backup/games": ["auto-2019-10-15_13-00"], "backup/work": ["auto-2019-10-15_13-00", "auto-2019-10-15_09-00"]}], "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "replication.update": {"description": "Update a Replication Task with specific `id`.", "cli_description": "Update a Replication Task with specific `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_WRITE", "REPLICATION_TASK_WRITE_PULL"], "accepts": [{"description": "ID of the replication task to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": false}, "ssh_credential REDACTED}, {"type": "null"}], "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": false}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": false}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "exclude": {"description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot task IDs that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"type": "integer"}], "title": "periodic_snapshot_tasks", "type": "array", "uniqueItems": true, "_name_": "periodic_snapshot_tasks", "_required_": false}, "naming_schema": {"description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": false}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": false}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}}, "title": "replication_update", "type": "object", "description": "Updated configuration for the replication task.", "_name_": "replication_update", "_required_": true, "_attrs_order_": ["name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this replication task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Name for replication task.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "direction": {"description": "Whether task will `PUSH` or `PULL` snapshots.", "enum": ["PUSH", "PULL"], "title": "direction", "type": "string", "_name_": "direction", "_required_": true}, "transport": {"description": "Method of snapshots transfer.\n\n* `SSH` transfers snapshots via SSH connection. This method is supported everywhere but does not achieve great performance.\n* `SSH+NETCAT` uses unencrypted connection for data transfer. This can only be used in trusted networks and requires a port (specified by range from `netcat_active_side_port_min` to `netcat_active_side_port_max`) to be open on `netcat_active_side`.\n* `LOCAL` replicates to or from localhost.", "enum": ["SSH", "SSH+NETCAT", "LOCAL"], "title": "transport", "type": "string", "_name_": "transport", "_required_": true}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "Keychain Credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "netcat_active_side": {"anyOf": [{"enum": ["LOCAL", "REMOTE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Which side actively establishes the netcat connection for `SSH+NETCAT` transport.\n\n* `LOCAL`: Local system initiates the connection\n* `REMOTE`: Remote system initiates the connection\n* `null`: Not applicable for other transport types", "title": "netcat_active_side", "_name_": "netcat_active_side", "_required_": false}, "netcat_active_side_listen_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the active side to listen on for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_active_side_listen_address", "_name_": "netcat_active_side_listen_address", "_required_": false}, "netcat_active_side_port_min": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_min", "_name_": "netcat_active_side_port_min", "_required_": false}, "netcat_active_side_port_max": {"anyOf": [{"maximum": 65535, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Maximum port number in the range for netcat connections. `null` if not applicable.", "title": "netcat_active_side_port_max", "_name_": "netcat_active_side_port_max", "_required_": false}, "netcat_passive_side_connect_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address for the passive side to connect to for `SSH+NETCAT` transport. `null` if not applicable.", "title": "netcat_passive_side_connect_address", "_name_": "netcat_passive_side_connect_address", "_required_": false}, "sudo": {"default": false, "description": "`SSH` and `SSH+NETCAT` transports should use sudo (which is expected to be password REDACTED, "title": "sudo", "type": "boolean", "_name_": "sudo", "_required_": false}, "source_datasets": {"description": "List of datasets to replicate snapshots from.", "items": [{"type": "string"}], "minItems": 1, "title": "source_datasets", "type": "array", "_name_": "source_datasets", "_required_": true}, "target_dataset": {"description": "Dataset to put snapshots into.", "title": "target_dataset", "type": "string", "_name_": "target_dataset", "_required_": true}, "recursive": {"description": "Whether to recursively replicate child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from replication.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "properties": {"type": "boolean", "default": true, "description": "Send dataset properties along with snapshots.", "title": "properties", "_name_": "properties", "_required_": false}, "properties_exclude": {"default": [], "description": "Array of dataset property names to exclude from replication.", "items": [{"minLength": 1, "type": "string"}], "title": "properties_exclude", "type": "array", "_name_": "properties_exclude", "_required_": false}, "properties_override": {"additionalProperties": {"type": "string"}, "default": {}, "description": "Object mapping dataset property names to override values during replication.", "title": "properties_override", "type": "object", "_name_": "properties_override", "_required_": false}, "replicate": {"default": false, "description": "Whether to use full ZFS replication.", "title": "replicate", "type": "boolean", "_name_": "replicate", "_required_": false}, "encryption": {"default": false, "description": "Whether to enable encryption for the replicated datasets.", "title": "encryption", "type": "boolean", "_name_": "encryption", "_required_": false}, "encryption_inherit": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Whether replicated datasets should inherit encryption from parent. `null` if encryption is disabled.", "title": "encryption_inherit", "_name_": "encryption_inherit", "_required_": false}, "encryption_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Encryption key for replicated datasets. `null` if not specified.", "title": "encryption_key", "_name_": "encryption_key", "_required_": false}, "encryption_key_format": {"anyOf": [{"enum": ["HEX", "PASSPHRASE"], "type": "string"}, {"type": "null"}], "default": null, "description": "Format of the encryption key.\n\n* `HEX`: Hexadecimal-encoded key\n* `PASSPHRASE`: Text passphrase\n* `null`: Not applicable when encryption is disabled", "title": "encryption_key_format", "_name_": "encryption_key_format", "_required_": false}, "encryption_key_location": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Filesystem path where encryption key is stored. `null` if not using key file.", "title": "encryption_key_location", "_name_": "encryption_key_location", "_required_": false}, "periodic_snapshot_tasks": {"description": "List of periodic snapshot tasks that are sources of snapshots for this replication task. Only push replication tasks can be bound to periodic snapshot tasks.", "items": [{"additionalProperties": false, "properties": {"dataset": {"description": "The dataset to take snapshots of.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, "recursive": {"default": false, "description": "Whether to recursively snapshot child datasets.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "lifetime_value": {"default": 2, "description": "Number of time units to retain snapshots. `lifetime_unit` gives the time unit.", "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"default": "WEEK", "description": "Unit of time for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": false}, "enabled": {"default": true, "description": "Whether this periodic snapshot task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "exclude": {"default": [], "description": "Array of dataset patterns to exclude from recursive snapshots.", "items": [{"type": "string"}], "title": "exclude", "type": "array", "_name_": "exclude", "_required_": false}, "naming_schema": {"default": "auto-%Y-%m-%d_%H-%M", "description": "Naming pattern for generated snapshots using strftime format.", "title": "naming_schema", "type": "string", "_name_": "naming_schema", "_required_": false}, "allow_empty": {"default": true, "description": "Whether to take snapshots even if no data has changed.", "title": "allow_empty", "type": "boolean", "_name_": "allow_empty", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when snapshots should be taken (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time of the window when snapshots can be taken.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when snapshots should be taken.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, "id": {"description": "Unique identifier for the periodic snapshot task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "state": {"description": "Current state of the task.", "title": "state", "type": "string", "_name_": "state", "_required_": true}}, "required": ["dataset", "id", "state"], "title": "PoolSnapshotTaskDBEntry", "type": "object", "_attrs_order_": ["dataset", "recursive", "lifetime_value", "lifetime_unit", "enabled", "exclude", "naming_schema", "allow_empty", "schedule", "id", "state"]}], "title": "periodic_snapshot_tasks", "type": "array", "_name_": "periodic_snapshot_tasks", "_required_": true}, "naming_schema": {"default": [], "description": "List of naming schemas for pull replication.", "items": [{"type": "string"}], "title": "naming_schema", "type": "array", "_name_": "naming_schema", "_required_": false}, "also_include_naming_schema": {"default": [], "description": "List of naming schemas for push replication.", "items": [{"type": "string"}], "title": "also_include_naming_schema", "type": "array", "_name_": "also_include_naming_schema", "_required_": false}, "name_regex": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Replicate all snapshots which names match specified regular expression.", "title": "name_regex", "_name_": "name_regex", "_required_": false}, "auto": {"description": "Allow replication to run automatically on schedule or after bound periodic snapshot task.", "title": "auto", "type": "boolean", "_name_": "auto", "_required_": true}, "schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Schedule to run replication task. Only `auto` replication tasks without bound periodic snapshot tasks can have a schedule.", "title": "schedule", "_name_": "schedule", "_required_": false}, "restrict_schedule": {"anyOf": [{"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}, "begin": {"default": "00:00", "description": "Start time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "begin", "type": "string", "_name_": "begin", "_required_": false}, "end": {"default": "23:59", "description": "End time for the time window in HH:MM format.", "examples": ["00:00", "06:30", "18:00", "23:00"], "title": "end", "type": "string", "_name_": "end", "_required_": false}}, "title": "ReplicationTimeCronModel", "type": "object", "_attrs_order_": ["minute", "hour", "dom", "month", "dow", "begin", "end"]}, {"type": "null"}], "default": null, "description": "Restricts when replication task with bound periodic snapshot tasks runs. For example, you can have periodic snapshot tasks that run every 15 minutes, but only run replication task every hour.", "title": "restrict_schedule", "_name_": "restrict_schedule", "_required_": false}, "only_matching_schedule": {"default": false, "description": "Will only replicate snapshots that match `schedule` or `restrict_schedule`.", "title": "only_matching_schedule", "type": "boolean", "_name_": "only_matching_schedule", "_required_": false}, "allow_from_scratch": {"default": false, "description": "Will destroy all snapshots on target side and replicate everything from scratch if none of the snapshots on target side matches source snapshots.", "title": "allow_from_scratch", "type": "boolean", "_name_": "allow_from_scratch", "_required_": false}, "readonly": {"default": "SET", "description": "Controls destination datasets readonly property.\n\n* `SET`: Set all destination datasets to readonly=on after finishing the replication.\n* `REQUIRE`: Require all existing destination datasets to have readonly=on property.\n* `IGNORE`: Avoid this kind of behavior.", "enum": ["SET", "REQUIRE", "IGNORE"], "title": "readonly", "type": "string", "_name_": "readonly", "_required_": false}, "hold_pending_snapshots": {"default": false, "description": "Prevent source snapshots from being deleted by retention of replication fails for some reason.", "title": "hold_pending_snapshots", "type": "boolean", "_name_": "hold_pending_snapshots", "_required_": false}, "retention_policy": {"description": "How to delete old snapshots on target side:\n\n* `SOURCE`: Delete snapshots that are absent on source side.\n* `CUSTOM`: Delete snapshots that are older than `lifetime_value` and `lifetime_unit`.\n* `NONE`: Do not delete any snapshots.", "enum": ["SOURCE", "CUSTOM", "NONE"], "title": "retention_policy", "type": "string", "_name_": "retention_policy", "_required_": true}, "lifetime_value": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Number of time units to retain snapshots for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_value", "_name_": "lifetime_value", "_required_": false}, "lifetime_unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for snapshot retention for custom retention policy. Only applies when `retention_policy` is CUSTOM.", "title": "lifetime_unit", "_name_": "lifetime_unit", "_required_": false}, "lifetimes": {"default": [], "description": "Array of different retention schedules with their own cron schedules and lifetime settings.", "items": [{"additionalProperties": false, "properties": {"schedule": {"additionalProperties": false, "description": "Cron schedule for when snapshot retention policies are applied.", "properties": {"minute": {"default": "*", "description": "\"00\" - \"59\"", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "_name_": "schedule", "_required_": true, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "lifetime_value": {"description": "Number of time units to retain snapshots.", "minimum": 1, "title": "lifetime_value", "type": "integer", "_name_": "lifetime_value", "_required_": true}, "lifetime_unit": {"description": "Time unit for snapshot retention.", "enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "title": "lifetime_unit", "type": "string", "_name_": "lifetime_unit", "_required_": true}}, "required": ["schedule", "lifetime_value", "lifetime_unit"], "title": "ReplicationLifetimeModel", "type": "object", "_attrs_order_": ["schedule", "lifetime_value", "lifetime_unit"]}], "title": "lifetimes", "type": "array", "_name_": "lifetimes", "_required_": false}, "compression": {"anyOf": [{"enum": ["LZ4", "PIGZ", "PLZIP"], "type": "string"}, {"type": "null"}], "default": null, "description": "Compresses SSH stream. Available only for SSH transport.", "title": "compression", "_name_": "compression", "_required_": false}, "speed_limit": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "Limits speed of SSH stream. Available only for SSH transport.", "title": "speed_limit", "_name_": "speed_limit", "_required_": false}, "large_block": {"default": true, "description": "Enable large block support for ZFS send streams.", "title": "large_block", "type": "boolean", "_name_": "large_block", "_required_": false}, "embed": {"default": false, "description": "Enable embedded block support for ZFS send streams.", "title": "embed", "type": "boolean", "_name_": "embed", "_required_": false}, "compressed": {"default": true, "description": "Enable compressed ZFS send streams.", "title": "compressed", "type": "boolean", "_name_": "compressed", "_required_": false}, "retries": {"default": 5, "description": "Number of retries before considering replication failed.", "minimum": 1, "title": "retries", "type": "integer", "_name_": "retries", "_required_": false}, "logging_level": {"anyOf": [{"enum": ["DEBUG", "INFO", "WARNING", "ERROR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Log level for replication task execution. Controls verbosity of replication logs.", "title": "logging_level", "_name_": "logging_level", "_required_": false}, "enabled": {"default": true, "description": "Whether this replication task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "state": {"description": "Current state information for the replication task.", "title": "state", "type": "object", "_name_": "state", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}, "has_encrypted_dataset_keys": {"description": "Whether this replication task has encrypted dataset keys available.", "title": "has_encrypted_dataset_keys", "type": "boolean", "_name_": "has_encrypted_dataset_keys", "_required_": true}}, "required": ["id", "name", "direction", "transport", "source_datasets", "target_dataset", "recursive", "periodic_snapshot_tasks", "auto", "retention_policy", "state", "job", "has_encrypted_dataset_keys"], "title": "result", "type": "object", "description": "The updated replication task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "direction", "transport", "ssh_credential REDACTED, "netcat_active_side", "netcat_active_side_listen_address", "netcat_active_side_port_min", "netcat_active_side_port_max", "netcat_passive_side_connect_address", "sudo", "source_datasets", "target_dataset", "recursive", "exclude", "properties", "properties_exclude", "properties_override", "replicate", "encryption", "encryption_inherit", "encryption_key", "encryption_key_format", "encryption_key_location", "periodic_snapshot_tasks", "naming_schema", "also_include_naming_schema", "name_regex", "auto", "schedule", "restrict_schedule", "only_matching_schedule", "allow_from_scratch", "readonly", "hold_pending_snapshots", "retention_policy", "lifetime_value", "lifetime_unit", "lifetimes", "compression", "speed_limit", "large_block", "embed", "compressed", "retries", "logging_level", "enabled", "state", "job", "has_encrypted_dataset_keys"]}]}, "replication.config.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "REPLICATION_TASK_CONFIG_READ", "REPLICATION_TASK_CONFIG_WRITE", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the replication configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "max_parallel_replication_tasks": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "A maximum number of parallel replication tasks running.", "title": "max_parallel_replication_tasks", "_name_": "max_parallel_replication_tasks", "_required_": true}}, "required": ["id", "max_parallel_replication_tasks"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "max_parallel_replication_tasks"]}]}, "replication.config.update": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "REPLICATION_TASK_CONFIG_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"max_parallel_replication_tasks": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "A maximum number of parallel replication tasks running.", "title": "max_parallel_replication_tasks", "_name_": "max_parallel_replication_tasks", "_required_": false}}, "title": "replication_config_update", "type": "object", "description": "ReplicationConfigUpdateArgs parameters.", "_name_": "replication_config_update", "_required_": true, "_attrs_order_": ["max_parallel_replication_tasks"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the replication configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "max_parallel_replication_tasks": {"anyOf": [{"minimum": 1, "type": "integer"}, {"type": "null"}], "description": "A maximum number of parallel replication tasks running.", "title": "max_parallel_replication_tasks", "_name_": "max_parallel_replication_tasks", "_required_": true}}, "required": ["id", "max_parallel_replication_tasks"], "title": "result", "type": "object", "description": "The updated replication configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "max_parallel_replication_tasks"]}]}, "reporting.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "tier0_days": {"description": "Number of days to keep high-resolution reporting data.", "minimum": 1, "title": "tier0_days", "type": "integer", "_name_": "tier0_days", "_required_": true}, "tier1_days": {"description": "Number of days to keep lower-resolution aggregated reporting data.", "minimum": 1, "title": "tier1_days", "type": "integer", "_name_": "tier1_days", "_required_": true}, "tier1_update_interval": {"description": "Interval in seconds for updating aggregated tier1 data.", "minimum": 1, "title": "tier1_update_interval", "type": "integer", "_name_": "tier1_update_interval", "_required_": true}}, "required": ["id", "tier0_days", "tier1_days", "tier1_update_interval"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "tier0_days", "tier1_days", "tier1_update_interval"]}]}, "reporting.get_data": {"description": "Get reporting data for given graphs.\n\nList of possible graphs can be retrieved using `reporting.graphs` call.\n\nFor the time period of the graph either `unit` and `page` OR `start` and `end` should be\nused, not both.\n\n`aggregate` will return aggregate available data for each graph (e.g. min, max, mean).\n\n", "cli_description": "Get reporting data for given graphs", "examples": {"websocket": ["\n\n Get graph data of \"nfsstat\" from the last hour.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"reporting.get_data\",\n \"params\": [\n [{\"name\": \"nfsstat\"}],\n {\"unit\": \"HOURLY\"},\n ]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "Array of graph identifiers specifying which metrics to retrieve.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Type of performance metric to retrieve.\n\n* `cpu`: CPU usage statistics\n* `cputemp`: CPU temperature readings\n* `disk`: Disk I/O statistics\n* `interface`: Network interface statistics\n* `load`: System load averages\n* `processes`: Process count and statistics\n* `memory`: Memory usage statistics\n* `uptime`: System uptime\n* `arcactualrate`: ZFS ARC actual hit rate\n* `arcrate`: ZFS ARC hit rate\n* `arcsize`: ZFS ARC cache size\n* `arcresult`: ZFS ARC operation results\n* `disktemp`: Disk temperature readings\n* `upscharge`: UPS battery charge level\n* `upsruntime`: UPS estimated runtime\n* `upsvoltage`: UPS voltage readings\n* `upscurrent`: UPS current readings\n* `upsfrequency`: UPS frequency readings\n* `upsload`: UPS load percentage\n* `upstemperature`: UPS temperature readings", "enum": ["cpu", "cputemp", "disk", "interface", "load", "processes", "memory", "uptime", "arcactualrate", "arcrate", "arcsize", "arcresult", "disktemp", "upscharge", "upsruntime", "upsvoltage", "upscurrent", "upsfrequency", "upsload", "upstemperature"], "title": "name", "type": "string", "_name_": "name", "_required_": true}, "identifier": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Specific instance identifier for the metric (e.g., device name, interface name). `null` for system-wide metrics.", "title": "identifier", "_name_": "identifier", "_required_": false}}, "required": ["name"], "title": "GraphIdentifier", "type": "object", "_attrs_order_": ["name", "identifier"]}], "minItems": 1, "title": "graphs", "type": "array", "_name_": "graphs", "_required_": true}, {"additionalProperties": false, "properties": {"unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for data aggregation. `null` for default aggregation.", "title": "unit", "_name_": "unit", "_required_": false}, "page": {"default": 1, "description": "Page number for paginated results.", "minimum": 1, "title": "page", "type": "integer", "_name_": "page", "_required_": false}, "aggregate": {"default": true, "description": "Whether to return aggregated data or raw data points.", "title": "aggregate", "type": "boolean", "_name_": "aggregate", "_required_": false}, "start": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Start timestamp for the data range. `null` for default start time.", "title": "start", "_name_": "start", "_required_": false}, "end": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "End timestamp for the data range. `null` for current time.", "title": "end", "_name_": "end", "_required_": false}}, "title": "query", "type": "object", "description": "Query parameters for filtering and formatting the returned data.", "_name_": "query", "_required_": false, "_attrs_order_": ["unit", "page", "aggregate", "start", "end"]}], "returns": [{"description": "Array of performance data responses for each requested graph.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the performance metric.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "identifier": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific instance identifier for the metric. `null` for system-wide metrics.", "title": "identifier", "_name_": "identifier", "_required_": true}, "data": {"description": "Array of time-series data points for the requested time period.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "aggregations": {"anyOf": [{"additionalProperties": false, "properties": {"min": {"description": "Minimum values for each data series over the time period.", "title": "min", "type": "object", "_name_": "min", "_required_": true}, "mean": {"description": "Average values for each data series over the time period.", "title": "mean", "type": "object", "_name_": "mean", "_required_": true}, "max": {"description": "Maximum values for each data series over the time period.", "title": "max", "type": "object", "_name_": "max", "_required_": true}}, "required": ["min", "mean", "max"], "title": "Aggregations", "type": "object", "_attrs_order_": ["min", "mean", "max"]}, {"type": "null"}], "description": "Statistical aggregations of the data over the time period. `null` when `aggregate` was not requested.", "title": "aggregations", "_name_": "aggregations", "_required_": true}, "start": {"description": "Actual start timestamp of the returned data.", "exclusiveMinimum": 0, "title": "start", "type": "integer", "_name_": "start", "_required_": true}, "end": {"description": "Actual end timestamp of the returned data.", "exclusiveMinimum": 0, "title": "end", "type": "integer", "_name_": "end", "_required_": true}, "legend": {"description": "Array of labels describing each data series in the results.", "items": [{"type": "string"}], "title": "legend", "type": "array", "_name_": "legend", "_required_": true}}, "required": ["name", "identifier", "data", "aggregations", "start", "end", "legend"], "title": "ReportingGetDataResponse", "type": "object", "_attrs_order_": ["name", "identifier", "data", "aggregations", "start", "end", "legend"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "reporting.graph": {"description": "Get reporting data for `name` graph.", "cli_description": "Get reporting data for `name` graph", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "String identifier for the specific graph to retrieve.", "minLength": 1, "title": "str", "type": "string", "_name_": "str", "_required_": true}, {"additionalProperties": false, "properties": {"unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for data aggregation. `null` for default aggregation.", "title": "unit", "_name_": "unit", "_required_": false}, "page": {"default": 1, "description": "Page number for paginated results.", "minimum": 1, "title": "page", "type": "integer", "_name_": "page", "_required_": false}, "aggregate": {"default": true, "description": "Whether to return aggregated data or raw data points.", "title": "aggregate", "type": "boolean", "_name_": "aggregate", "_required_": false}, "start": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Start timestamp for the data range. `null` for default start time.", "title": "start", "_name_": "start", "_required_": false}, "end": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "End timestamp for the data range. `null` for current time.", "title": "end", "_name_": "end", "_required_": false}}, "title": "query", "type": "object", "description": "Query parameters for filtering and formatting the returned data.", "_name_": "query", "_required_": false, "_attrs_order_": ["unit", "page", "aggregate", "start", "end"]}], "returns": [{"description": "Array of performance data responses for each requested graph.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the performance metric.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "identifier": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific instance identifier for the metric. `null` for system-wide metrics.", "title": "identifier", "_name_": "identifier", "_required_": true}, "data": {"description": "Array of time-series data points for the requested time period.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "aggregations": {"anyOf": [{"additionalProperties": false, "properties": {"min": {"description": "Minimum values for each data series over the time period.", "title": "min", "type": "object", "_name_": "min", "_required_": true}, "mean": {"description": "Average values for each data series over the time period.", "title": "mean", "type": "object", "_name_": "mean", "_required_": true}, "max": {"description": "Maximum values for each data series over the time period.", "title": "max", "type": "object", "_name_": "max", "_required_": true}}, "required": ["min", "mean", "max"], "title": "Aggregations", "type": "object", "_attrs_order_": ["min", "mean", "max"]}, {"type": "null"}], "description": "Statistical aggregations of the data over the time period. `null` when `aggregate` was not requested.", "title": "aggregations", "_name_": "aggregations", "_required_": true}, "start": {"description": "Actual start timestamp of the returned data.", "exclusiveMinimum": 0, "title": "start", "type": "integer", "_name_": "start", "_required_": true}, "end": {"description": "Actual end timestamp of the returned data.", "exclusiveMinimum": 0, "title": "end", "type": "integer", "_name_": "end", "_required_": true}, "legend": {"description": "Array of labels describing each data series in the results.", "items": [{"type": "string"}], "title": "legend", "type": "array", "_name_": "legend", "_required_": true}}, "required": ["name", "identifier", "data", "aggregations", "start", "end", "legend"], "title": "ReportingGetDataResponse", "type": "object", "_attrs_order_": ["name", "identifier", "data", "aggregations", "start", "end", "legend"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "reporting.graphs": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"name": {"description": "Unique name identifier for the graph type.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Human-readable title for display purposes.", "minLength": 1, "title": "title", "type": "string", "_name_": "title", "_required_": false}, "vertical_label": {"description": "Label for the vertical (Y) axis of the graph.", "minLength": 1, "title": "vertical_label", "type": "string", "_name_": "vertical_label", "_required_": false}, "identifiers": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Array of available instance identifiers for this graph type. `null` if not applicable.", "title": "identifiers", "_name_": "identifiers", "_required_": false}}, "title": "ReportingGraphsItemQueryResultItem", "type": "object", "_attrs_order_": ["name", "title", "vertical_label", "identifiers"]}], "type": "array"}, {"additionalProperties": false, "properties": {"name": {"description": "Unique name identifier for the graph type.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Human-readable title for display purposes.", "minLength": 1, "title": "title", "type": "string", "_name_": "title", "_required_": false}, "vertical_label": {"description": "Label for the vertical (Y) axis of the graph.", "minLength": 1, "title": "vertical_label", "type": "string", "_name_": "vertical_label", "_required_": false}, "identifiers": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Array of available instance identifiers for this graph type. `null` if not applicable.", "title": "identifiers", "_name_": "identifiers", "_required_": false}}, "title": "ReportingGraphsItemQueryResultItem", "type": "object", "_attrs_order_": ["name", "title", "vertical_label", "identifiers"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "reporting.netdata_get_data": {"description": "Get reporting data for given graphs.\n\nList of possible graphs can be retrieved using `reporting.netdata_graphs` call.\n\nFor the time period of the graph either `unit` and `page` OR `start` and `end` should be\nused, not both.\n\n`aggregate` will return aggregate available data for each graph (e.g. min, max, mean).\n\n", "cli_description": "Get reporting data for given graphs", "examples": {"websocket": ["\n\n Get graph data of \"nfsstat\" from the last hour.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"reporting.netdata_get_data\",\n \"params\": [\n [{\"name\": \"cpu\"}],\n {\"unit\": \"HOURLY\"},\n ]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "Array of graph identifiers specifying which metrics to retrieve.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Type of performance metric to retrieve.\n\n* `cpu`: CPU usage statistics\n* `cputemp`: CPU temperature readings\n* `disk`: Disk I/O statistics\n* `interface`: Network interface statistics\n* `load`: System load averages\n* `processes`: Process count and statistics\n* `memory`: Memory usage statistics\n* `uptime`: System uptime\n* `arcactualrate`: ZFS ARC actual hit rate\n* `arcrate`: ZFS ARC hit rate\n* `arcsize`: ZFS ARC cache size\n* `arcresult`: ZFS ARC operation results\n* `disktemp`: Disk temperature readings\n* `upscharge`: UPS battery charge level\n* `upsruntime`: UPS estimated runtime\n* `upsvoltage`: UPS voltage readings\n* `upscurrent`: UPS current readings\n* `upsfrequency`: UPS frequency readings\n* `upsload`: UPS load percentage\n* `upstemperature`: UPS temperature readings", "enum": ["cpu", "cputemp", "disk", "interface", "load", "processes", "memory", "uptime", "arcactualrate", "arcrate", "arcsize", "arcresult", "disktemp", "upscharge", "upsruntime", "upsvoltage", "upscurrent", "upsfrequency", "upsload", "upstemperature"], "title": "name", "type": "string", "_name_": "name", "_required_": true}, "identifier": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Specific instance identifier for the metric (e.g., device name, interface name). `null` for system-wide metrics.", "title": "identifier", "_name_": "identifier", "_required_": false}}, "required": ["name"], "title": "GraphIdentifier", "type": "object", "_attrs_order_": ["name", "identifier"]}], "minItems": 1, "title": "graphs", "type": "array", "_name_": "graphs", "_required_": true}, {"additionalProperties": false, "properties": {"unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for data aggregation. `null` for default aggregation.", "title": "unit", "_name_": "unit", "_required_": false}, "page": {"default": 1, "description": "Page number for paginated results.", "minimum": 1, "title": "page", "type": "integer", "_name_": "page", "_required_": false}, "aggregate": {"default": true, "description": "Whether to return aggregated data or raw data points.", "title": "aggregate", "type": "boolean", "_name_": "aggregate", "_required_": false}, "start": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Start timestamp for the data range. `null` for default start time.", "title": "start", "_name_": "start", "_required_": false}, "end": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "End timestamp for the data range. `null` for current time.", "title": "end", "_name_": "end", "_required_": false}}, "title": "query", "type": "object", "description": "Query parameters for filtering and formatting the returned data.", "_name_": "query", "_required_": false, "_attrs_order_": ["unit", "page", "aggregate", "start", "end"]}], "returns": [{"description": "Array of performance data responses for each requested graph.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the performance metric.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "identifier": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific instance identifier for the metric. `null` for system-wide metrics.", "title": "identifier", "_name_": "identifier", "_required_": true}, "data": {"description": "Array of time-series data points for the requested time period.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "aggregations": {"anyOf": [{"additionalProperties": false, "properties": {"min": {"description": "Minimum values for each data series over the time period.", "title": "min", "type": "object", "_name_": "min", "_required_": true}, "mean": {"description": "Average values for each data series over the time period.", "title": "mean", "type": "object", "_name_": "mean", "_required_": true}, "max": {"description": "Maximum values for each data series over the time period.", "title": "max", "type": "object", "_name_": "max", "_required_": true}}, "required": ["min", "mean", "max"], "title": "Aggregations", "type": "object", "_attrs_order_": ["min", "mean", "max"]}, {"type": "null"}], "description": "Statistical aggregations of the data over the time period. `null` when `aggregate` was not requested.", "title": "aggregations", "_name_": "aggregations", "_required_": true}, "start": {"description": "Actual start timestamp of the returned data.", "exclusiveMinimum": 0, "title": "start", "type": "integer", "_name_": "start", "_required_": true}, "end": {"description": "Actual end timestamp of the returned data.", "exclusiveMinimum": 0, "title": "end", "type": "integer", "_name_": "end", "_required_": true}, "legend": {"description": "Array of labels describing each data series in the results.", "items": [{"type": "string"}], "title": "legend", "type": "array", "_name_": "legend", "_required_": true}}, "required": ["name", "identifier", "data", "aggregations", "start", "end", "legend"], "title": "ReportingGetDataResponse", "type": "object", "_attrs_order_": ["name", "identifier", "data", "aggregations", "start", "end", "legend"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "reporting.netdata_graph": {"description": "Get reporting data for `name` graph.", "cli_description": "Get reporting data for `name` graph", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"description": "String identifier for the specific graph to retrieve.", "minLength": 1, "title": "str", "type": "string", "_name_": "str", "_required_": true}, {"additionalProperties": false, "properties": {"unit": {"anyOf": [{"enum": ["HOUR", "DAY", "WEEK", "MONTH", "YEAR"], "type": "string"}, {"type": "null"}], "default": null, "description": "Time unit for data aggregation. `null` for default aggregation.", "title": "unit", "_name_": "unit", "_required_": false}, "page": {"default": 1, "description": "Page number for paginated results.", "minimum": 1, "title": "page", "type": "integer", "_name_": "page", "_required_": false}, "aggregate": {"default": true, "description": "Whether to return aggregated data or raw data points.", "title": "aggregate", "type": "boolean", "_name_": "aggregate", "_required_": false}, "start": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Start timestamp for the data range. `null` for default start time.", "title": "start", "_name_": "start", "_required_": false}, "end": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "End timestamp for the data range. `null` for current time.", "title": "end", "_name_": "end", "_required_": false}}, "title": "query", "type": "object", "description": "Query parameters for filtering and formatting the returned data.", "_name_": "query", "_required_": false, "_attrs_order_": ["unit", "page", "aggregate", "start", "end"]}], "returns": [{"description": "Array of performance data responses for each requested graph.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the performance metric.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "identifier": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific instance identifier for the metric. `null` for system-wide metrics.", "title": "identifier", "_name_": "identifier", "_required_": true}, "data": {"description": "Array of time-series data points for the requested time period.", "items": [{}], "title": "data", "type": "array", "_name_": "data", "_required_": true}, "aggregations": {"anyOf": [{"additionalProperties": false, "properties": {"min": {"description": "Minimum values for each data series over the time period.", "title": "min", "type": "object", "_name_": "min", "_required_": true}, "mean": {"description": "Average values for each data series over the time period.", "title": "mean", "type": "object", "_name_": "mean", "_required_": true}, "max": {"description": "Maximum values for each data series over the time period.", "title": "max", "type": "object", "_name_": "max", "_required_": true}}, "required": ["min", "mean", "max"], "title": "Aggregations", "type": "object", "_attrs_order_": ["min", "mean", "max"]}, {"type": "null"}], "description": "Statistical aggregations of the data over the time period. `null` when `aggregate` was not requested.", "title": "aggregations", "_name_": "aggregations", "_required_": true}, "start": {"description": "Actual start timestamp of the returned data.", "exclusiveMinimum": 0, "title": "start", "type": "integer", "_name_": "start", "_required_": true}, "end": {"description": "Actual end timestamp of the returned data.", "exclusiveMinimum": 0, "title": "end", "type": "integer", "_name_": "end", "_required_": true}, "legend": {"description": "Array of labels describing each data series in the results.", "items": [{"type": "string"}], "title": "legend", "type": "array", "_name_": "legend", "_required_": true}}, "required": ["name", "identifier", "data", "aggregations", "start", "end", "legend"], "title": "ReportingGetDataResponse", "type": "object", "_attrs_order_": ["name", "identifier", "data", "aggregations", "start", "end", "legend"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "reporting.netdata_graphs": {"description": "Get reporting netdata graphs.", "cli_description": "Get reporting netdata graphs", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"name": {"description": "Unique name identifier for the netdata graph type.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Human-readable title for display purposes.", "minLength": 1, "title": "title", "type": "string", "_name_": "title", "_required_": false}, "vertical_label": {"description": "Label for the vertical (Y) axis of the graph.", "minLength": 1, "title": "vertical_label", "type": "string", "_name_": "vertical_label", "_required_": false}, "identifiers": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Array of available instance identifiers for this graph type. `null` if not applicable.", "title": "identifiers", "_name_": "identifiers", "_required_": false}}, "title": "ReportingNetdataGraphsItemQueryResultItem", "type": "object", "_attrs_order_": ["name", "title", "vertical_label", "identifiers"]}], "type": "array"}, {"additionalProperties": false, "properties": {"name": {"description": "Unique name identifier for the netdata graph type.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Human-readable title for display purposes.", "minLength": 1, "title": "title", "type": "string", "_name_": "title", "_required_": false}, "vertical_label": {"description": "Label for the vertical (Y) axis of the graph.", "minLength": 1, "title": "vertical_label", "type": "string", "_name_": "vertical_label", "_required_": false}, "identifiers": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "Array of available instance identifiers for this graph type. `null` if not applicable.", "title": "identifiers", "_name_": "identifiers", "_required_": false}}, "title": "ReportingNetdataGraphsItemQueryResultItem", "type": "object", "_attrs_order_": ["name", "title", "vertical_label", "identifiers"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "reporting.update": {"description": "`tier1_days` can be set to specify for how many days we want to store reporting history which in netdata\nterms specifies the number of days netdata should be storing data in tier1 storage.", "cli_description": "`tier1_days` can be set to specify for how many days we want to store reporting history which in netdata terms specifies the number of days netdata should be storing data in tier1 storage", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPORTING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"tier0_days": {"description": "Number of days to keep high-resolution reporting data.", "minimum": 1, "title": "tier0_days", "type": "integer", "_name_": "tier0_days", "_required_": false}, "tier1_days": {"description": "Number of days to keep lower-resolution aggregated reporting data.", "minimum": 1, "title": "tier1_days", "type": "integer", "_name_": "tier1_days", "_required_": false}, "tier1_update_interval": {"description": "Interval in seconds for updating aggregated tier1 data.", "minimum": 1, "title": "tier1_update_interval", "type": "integer", "_name_": "tier1_update_interval", "_required_": false}}, "title": "reporting_update", "type": "object", "description": "ReportingUpdateArgs parameters.", "_name_": "reporting_update", "_required_": true, "_attrs_order_": ["tier0_days", "tier1_days", "tier1_update_interval"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "tier0_days": {"description": "Number of days to keep high-resolution reporting data.", "minimum": 1, "title": "tier0_days", "type": "integer", "_name_": "tier0_days", "_required_": true}, "tier1_days": {"description": "Number of days to keep lower-resolution aggregated reporting data.", "minimum": 1, "title": "tier1_days", "type": "integer", "_name_": "tier1_days", "_required_": true}, "tier1_update_interval": {"description": "Interval in seconds for updating aggregated tier1 data.", "minimum": 1, "title": "tier1_update_interval", "type": "integer", "_name_": "tier1_update_interval", "_required_": true}}, "required": ["id", "tier0_days", "tier1_days", "tier1_update_interval"], "title": "result", "type": "object", "description": "The updated reporting configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "tier0_days", "tier1_days", "tier1_update_interval"]}]}, "reporting.exporters.create": {"description": "Create a specific reporting exporter configuration containing required details for exporting reporting metrics.", "cli_description": "Create a specific reporting exporter configuration containing required details for exporting reporting metrics", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPORTING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"exporter_type": {"const": "GRAPHITE", "description": "Type of exporter - Graphite.", "enum": ["GRAPHITE"], "title": "exporter_type", "type": "string", "_name_": "exporter_type", "_required_": true}, "destination_ip": {"description": "IP address of the Graphite server.", "minLength": 1, "title": "destination_ip", "type": "string", "_name_": "destination_ip", "_required_": true}, "destination_port": {"description": "Port number of the Graphite server.", "maximum": 65535, "minimum": 1, "title": "destination_port", "type": "integer", "_name_": "destination_port", "_required_": true}, "prefix": {"default": "scale", "description": "Prefix to prepend to all metric names.", "title": "prefix", "type": "string", "_name_": "prefix", "_required_": false}, "namespace": {"description": "Namespace to organize metrics under.", "minLength": 1, "title": "namespace", "type": "string", "_name_": "namespace", "_required_": true}, "update_every": {"default": 1, "description": "Interval in seconds between metric updates.", "minimum": 1, "title": "update_every", "type": "integer", "_name_": "update_every", "_required_": false}, "buffer_on_failures": {"default": 10, "description": "Number of updates to buffer when Graphite server is unavailable.", "minimum": 1, "title": "buffer_on_failures", "type": "integer", "_name_": "buffer_on_failures", "_required_": false}, "send_names_instead_of_ids": {"default": true, "description": "Whether to send human-readable names instead of internal IDs.", "title": "send_names_instead_of_ids", "type": "boolean", "_name_": "send_names_instead_of_ids", "_required_": false}, "matching_charts": {"default": "*", "description": "Pattern to match charts for export (supports wildcards).", "minLength": 1, "title": "matching_charts", "type": "string", "_name_": "matching_charts", "_required_": false}}, "required": ["exporter_type", "destination_ip", "destination_port", "namespace"], "title": "attributes", "type": "object", "description": "Specific attributes for the exporter.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["exporter_type", "destination_ip", "destination_port", "prefix", "namespace", "update_every", "buffer_on_failures", "send_names_instead_of_ids", "matching_charts"]}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["enabled", "attributes", "name"], "title": "reporting_exporter_create", "type": "object", "description": "ReportingExportsCreateArgs parameters.", "_name_": "reporting_exporter_create", "_required_": true, "_attrs_order_": ["enabled", "attributes", "name"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting exporter.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"exporter_type": {"const": "GRAPHITE", "description": "Type of exporter - Graphite.", "enum": ["GRAPHITE"], "title": "exporter_type", "type": "string", "_name_": "exporter_type", "_required_": true}, "destination_ip": {"description": "IP address of the Graphite server.", "minLength": 1, "title": "destination_ip", "type": "string", "_name_": "destination_ip", "_required_": true}, "destination_port": {"description": "Port number of the Graphite server.", "maximum": 65535, "minimum": 1, "title": "destination_port", "type": "integer", "_name_": "destination_port", "_required_": true}, "prefix": {"default": "scale", "description": "Prefix to prepend to all metric names.", "title": "prefix", "type": "string", "_name_": "prefix", "_required_": false}, "namespace": {"description": "Namespace to organize metrics under.", "minLength": 1, "title": "namespace", "type": "string", "_name_": "namespace", "_required_": true}, "update_every": {"default": 1, "description": "Interval in seconds between metric updates.", "minimum": 1, "title": "update_every", "type": "integer", "_name_": "update_every", "_required_": false}, "buffer_on_failures": {"default": 10, "description": "Number of updates to buffer when Graphite server is unavailable.", "minimum": 1, "title": "buffer_on_failures", "type": "integer", "_name_": "buffer_on_failures", "_required_": false}, "send_names_instead_of_ids": {"default": true, "description": "Whether to send human-readable names instead of internal IDs.", "title": "send_names_instead_of_ids", "type": "boolean", "_name_": "send_names_instead_of_ids", "_required_": false}, "matching_charts": {"default": "*", "description": "Pattern to match charts for export (supports wildcards).", "minLength": 1, "title": "matching_charts", "type": "string", "_name_": "matching_charts", "_required_": false}}, "required": ["exporter_type", "destination_ip", "destination_port", "namespace"], "title": "attributes", "type": "object", "description": "Specific attributes for the exporter.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["exporter_type", "destination_ip", "destination_port", "prefix", "namespace", "update_every", "buffer_on_failures", "send_names_instead_of_ids", "matching_charts"]}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "enabled", "attributes", "name"], "title": "result", "type": "object", "description": "The newly created reporting exporter configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "attributes", "name"]}]}, "reporting.exporters.delete": {"description": "Delete Reporting Exporter of `id`.", "cli_description": "Delete Reporting Exporter of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPORTING_WRITE"], "accepts": [{"description": "ID of the reporting exporter to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Whether the reporting exporter was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "reporting.exporters.exporter_schemas": {"description": "Get the schemas for all the reporting export types we support with their respective attributes\nrequired for successfully exporting reporting metrics to them.", "cli_description": "Get the schemas for all the reporting export types we support with their respective attributes required for successfully exporting reporting metrics to them", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Array of available exporter schema definitions.", "items": [{"additionalProperties": false, "properties": {"key": {"description": "Unique key identifying the exporter type.", "title": "key", "type": "string", "_name_": "key", "_required_": true}, "schema": {"description": "Array of attribute definitions for this exporter type.", "items": [{"additionalProperties": true, "properties": {"_name_": {"description": "Internal name of the exporter attribute.", "title": "_name_", "type": "string", "_name_": "_name_", "_required_": true}, "title": {"description": "Human-readable title for the attribute.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "_required_": {"description": "Whether this attribute is required for the exporter configuration.", "title": "_required_", "type": "boolean", "_name_": "_required_", "_required_": true}}, "required": ["_name_", "title", "_required_"], "title": "ReportingExporterAttributeSchema", "type": "object", "_attrs_order_": ["_name_", "title", "_required_"]}], "title": "schema", "type": "array", "_name_": "schema", "_required_": true}}, "required": ["key", "schema"], "title": "ReportingExporterSchema", "type": "object", "_attrs_order_": ["key", "schema"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "reporting.exporters.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting exporter.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"exporter_type": {"const": "GRAPHITE", "description": "Type of exporter - Graphite.", "enum": ["GRAPHITE"], "title": "exporter_type", "type": "string", "_name_": "exporter_type", "_required_": true}, "destination_ip": {"description": "IP address of the Graphite server.", "minLength": 1, "title": "destination_ip", "type": "string", "_name_": "destination_ip", "_required_": true}, "destination_port": {"description": "Port number of the Graphite server.", "maximum": 65535, "minimum": 1, "title": "destination_port", "type": "integer", "_name_": "destination_port", "_required_": true}, "prefix": {"default": "scale", "description": "Prefix to prepend to all metric names.", "title": "prefix", "type": "string", "_name_": "prefix", "_required_": false}, "namespace": {"description": "Namespace to organize metrics under.", "minLength": 1, "title": "namespace", "type": "string", "_name_": "namespace", "_required_": true}, "update_every": {"default": 1, "description": "Interval in seconds between metric updates.", "minimum": 1, "title": "update_every", "type": "integer", "_name_": "update_every", "_required_": false}, "buffer_on_failures": {"default": 10, "description": "Number of updates to buffer when Graphite server is unavailable.", "minimum": 1, "title": "buffer_on_failures", "type": "integer", "_name_": "buffer_on_failures", "_required_": false}, "send_names_instead_of_ids": {"default": true, "description": "Whether to send human-readable names instead of internal IDs.", "title": "send_names_instead_of_ids", "type": "boolean", "_name_": "send_names_instead_of_ids", "_required_": false}, "matching_charts": {"default": "*", "description": "Pattern to match charts for export (supports wildcards).", "minLength": 1, "title": "matching_charts", "type": "string", "_name_": "matching_charts", "_required_": false}}, "required": ["exporter_type", "destination_ip", "destination_port", "namespace"], "title": "attributes", "type": "object", "description": "Specific attributes for the exporter.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["exporter_type", "destination_ip", "destination_port", "prefix", "namespace", "update_every", "buffer_on_failures", "send_names_instead_of_ids", "matching_charts"]}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "enabled", "attributes", "name"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "attributes", "name"]}]}, "reporting.exporters.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPORTING_READ", "REPORTING_WRITE", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting exporter.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "attributes": {"additionalProperties": false, "properties": {"exporter_type": {"const": "GRAPHITE", "description": "Type of exporter - Graphite.", "enum": ["GRAPHITE"], "title": "exporter_type", "type": "string", "_name_": "exporter_type", "_required_": true}, "destination_ip": {"description": "IP address of the Graphite server.", "minLength": 1, "title": "destination_ip", "type": "string", "_name_": "destination_ip", "_required_": true}, "destination_port": {"description": "Port number of the Graphite server.", "maximum": 65535, "minimum": 1, "title": "destination_port", "type": "integer", "_name_": "destination_port", "_required_": true}, "prefix": {"default": "scale", "description": "Prefix to prepend to all metric names.", "title": "prefix", "type": "string", "_name_": "prefix", "_required_": false}, "namespace": {"description": "Namespace to organize metrics under.", "minLength": 1, "title": "namespace", "type": "string", "_name_": "namespace", "_required_": true}, "update_every": {"default": 1, "description": "Interval in seconds between metric updates.", "minimum": 1, "title": "update_every", "type": "integer", "_name_": "update_every", "_required_": false}, "buffer_on_failures": {"default": 10, "description": "Number of updates to buffer when Graphite server is unavailable.", "minimum": 1, "title": "buffer_on_failures", "type": "integer", "_name_": "buffer_on_failures", "_required_": false}, "send_names_instead_of_ids": {"default": true, "description": "Whether to send human-readable names instead of internal IDs.", "title": "send_names_instead_of_ids", "type": "boolean", "_name_": "send_names_instead_of_ids", "_required_": false}, "matching_charts": {"default": "*", "description": "Pattern to match charts for export (supports wildcards).", "minLength": 1, "title": "matching_charts", "type": "string", "_name_": "matching_charts", "_required_": false}}, "required": ["exporter_type", "destination_ip", "destination_port", "namespace"], "title": "attributes", "type": "object", "description": "Specific attributes for the exporter.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["exporter_type", "destination_ip", "destination_port", "prefix", "namespace", "update_every", "buffer_on_failures", "send_names_instead_of_ids", "matching_charts"]}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "ReportingExporterQueryResultItem", "type": "object", "_attrs_order_": ["id", "enabled", "attributes", "name"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting exporter.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "attributes": {"description": "Specific attributes for the exporter.", "title": "attributes", "_name_": "attributes", "_required_": false}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "ReportingExporterQueryResultItem", "type": "object", "_attrs_order_": ["id", "enabled", "attributes", "name"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "reporting.exporters.update": {"description": "Update Reporting Exporter of `id`.", "cli_description": "Update Reporting Exporter of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPORTING_WRITE"], "accepts": [{"description": "ID of the reporting exporter to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "attributes": {"additionalProperties": false, "properties": {"exporter_type": {"const": "GRAPHITE", "description": "Type of exporter - Graphite.", "enum": ["GRAPHITE"], "title": "exporter_type", "type": "string", "_name_": "exporter_type", "_required_": true}, "destination_ip": {"description": "IP address of the Graphite server.", "minLength": 1, "title": "destination_ip", "type": "string", "_name_": "destination_ip", "_required_": true}, "destination_port": {"description": "Port number of the Graphite server.", "maximum": 65535, "minimum": 1, "title": "destination_port", "type": "integer", "_name_": "destination_port", "_required_": true}, "prefix": {"default": "scale", "description": "Prefix to prepend to all metric names.", "title": "prefix", "type": "string", "_name_": "prefix", "_required_": false}, "namespace": {"description": "Namespace to organize metrics under.", "minLength": 1, "title": "namespace", "type": "string", "_name_": "namespace", "_required_": true}, "update_every": {"default": 1, "description": "Interval in seconds between metric updates.", "minimum": 1, "title": "update_every", "type": "integer", "_name_": "update_every", "_required_": false}, "buffer_on_failures": {"default": 10, "description": "Number of updates to buffer when Graphite server is unavailable.", "minimum": 1, "title": "buffer_on_failures", "type": "integer", "_name_": "buffer_on_failures", "_required_": false}, "send_names_instead_of_ids": {"default": true, "description": "Whether to send human-readable names instead of internal IDs.", "title": "send_names_instead_of_ids", "type": "boolean", "_name_": "send_names_instead_of_ids", "_required_": false}, "matching_charts": {"default": "*", "description": "Pattern to match charts for export (supports wildcards).", "minLength": 1, "title": "matching_charts", "type": "string", "_name_": "matching_charts", "_required_": false}}, "required": ["exporter_type", "destination_ip", "destination_port", "namespace"], "title": "attributes", "type": "object", "description": "Specific attributes for the exporter.", "_name_": "attributes", "_required_": false, "_attrs_order_": ["exporter_type", "destination_ip", "destination_port", "prefix", "namespace", "update_every", "buffer_on_failures", "send_names_instead_of_ids", "matching_charts"]}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": false}}, "title": "reporting_exporter_update", "type": "object", "description": "Updated configuration for the reporting exporter.", "_name_": "reporting_exporter_update", "_required_": true, "_attrs_order_": ["enabled", "attributes", "name"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the reporting exporter.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether this exporter is enabled and active.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"exporter_type": {"const": "GRAPHITE", "description": "Type of exporter - Graphite.", "enum": ["GRAPHITE"], "title": "exporter_type", "type": "string", "_name_": "exporter_type", "_required_": true}, "destination_ip": {"description": "IP address of the Graphite server.", "minLength": 1, "title": "destination_ip", "type": "string", "_name_": "destination_ip", "_required_": true}, "destination_port": {"description": "Port number of the Graphite server.", "maximum": 65535, "minimum": 1, "title": "destination_port", "type": "integer", "_name_": "destination_port", "_required_": true}, "prefix": {"default": "scale", "description": "Prefix to prepend to all metric names.", "title": "prefix", "type": "string", "_name_": "prefix", "_required_": false}, "namespace": {"description": "Namespace to organize metrics under.", "minLength": 1, "title": "namespace", "type": "string", "_name_": "namespace", "_required_": true}, "update_every": {"default": 1, "description": "Interval in seconds between metric updates.", "minimum": 1, "title": "update_every", "type": "integer", "_name_": "update_every", "_required_": false}, "buffer_on_failures": {"default": 10, "description": "Number of updates to buffer when Graphite server is unavailable.", "minimum": 1, "title": "buffer_on_failures", "type": "integer", "_name_": "buffer_on_failures", "_required_": false}, "send_names_instead_of_ids": {"default": true, "description": "Whether to send human-readable names instead of internal IDs.", "title": "send_names_instead_of_ids", "type": "boolean", "_name_": "send_names_instead_of_ids", "_required_": false}, "matching_charts": {"default": "*", "description": "Pattern to match charts for export (supports wildcards).", "minLength": 1, "title": "matching_charts", "type": "string", "_name_": "matching_charts", "_required_": false}}, "required": ["exporter_type", "destination_ip", "destination_port", "namespace"], "title": "attributes", "type": "object", "description": "Specific attributes for the exporter.", "_name_": "attributes", "_required_": true, "_attrs_order_": ["exporter_type", "destination_ip", "destination_port", "prefix", "namespace", "update_every", "buffer_on_failures", "send_names_instead_of_ids", "matching_charts"]}, "name": {"description": "User defined name of exporter configuration.", "title": "name", "type": "string", "_name_": "name", "_required_": true}}, "required": ["id", "enabled", "attributes", "name"], "title": "result", "type": "object", "description": "The updated reporting exporter configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "attributes", "name"]}]}, "route.ipv4gw_reachable": {"description": "Get the IPv4 gateway and verify if it is reachable by any interface.", "cli_description": "Get the IPv4 gateway and verify if it is reachable by any interface", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "IPv4 gateway address to test for reachability.", "title": "ipv4_gateway", "type": "string", "_name_": "ipv4_gateway", "_required_": true}], "returns": [{"description": "Whether the specified IPv4 gateway is reachable.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "route.system_routes": {"description": "Get current/applied network routes.", "cli_description": "Get current/applied network routes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"network": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Network address for this route.", "title": "network", "_name_": "network", "_required_": false}, "netmask": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Network mask for this route.", "title": "netmask", "_name_": "netmask", "_required_": false}, "gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}, {"type": "null"}], "description": "Gateway IP address for this route. `null` if directly connected.", "title": "gateway", "_name_": "gateway", "_required_": false}, "interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Network interface name for this route. `null` if not bound to specific interface.", "title": "interface", "_name_": "interface", "_required_": false}, "flags": {"description": "Array of routing flags for this route.", "items": [{}], "title": "flags", "type": "array", "_name_": "flags", "_required_": false}, "table_id": {"description": "Routing table ID where this route is stored.", "title": "table_id", "type": "integer", "_name_": "table_id", "_required_": false}, "scope": {"description": "Routing scope indicating the distance to the destination.", "title": "scope", "type": "integer", "_name_": "scope", "_required_": false}, "preferred_source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Preferred source IP address for outgoing packets. `null` if not specified.", "title": "preferred_source", "_name_": "preferred_source", "_required_": false}}, "title": "RouteSystemRoutesItemQueryResultItem", "type": "object", "_attrs_order_": ["network", "netmask", "gateway", "interface", "flags", "table_id", "scope", "preferred_source"]}], "type": "array"}, {"additionalProperties": false, "properties": {"network": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Network address for this route.", "title": "network", "_name_": "network", "_required_": false}, "netmask": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}], "description": "Network mask for this route.", "title": "netmask", "_name_": "netmask", "_required_": false}, "gateway": {"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}, {"type": "null"}], "description": "Gateway IP address for this route. `null` if directly connected.", "title": "gateway", "_name_": "gateway", "_required_": false}, "interface": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Network interface name for this route. `null` if not bound to specific interface.", "title": "interface", "_name_": "interface", "_required_": false}, "flags": {"description": "Array of routing flags for this route.", "items": [{}], "title": "flags", "type": "array", "_name_": "flags", "_required_": false}, "table_id": {"description": "Routing table ID where this route is stored.", "title": "table_id", "type": "integer", "_name_": "table_id", "_required_": false}, "scope": {"description": "Routing scope indicating the distance to the destination.", "title": "scope", "type": "integer", "_name_": "scope", "_required_": false}, "preferred_source": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Preferred source IP address for outgoing packets. `null` if not specified.", "title": "preferred_source", "_name_": "preferred_source", "_required_": false}}, "title": "RouteSystemRoutesItemQueryResultItem", "type": "object", "_attrs_order_": ["network", "netmask", "gateway", "interface", "flags", "table_id", "scope", "preferred_source"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "rsynctask.create": {"description": "Create a Rsync Task.", "cli_description": "Create a Rsync Task", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "mode": {"default": "MODULE", "description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED}, {"type": "null"}], "default": null, "description": "Keychain credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"default": "", "description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"default": "PUSH", "description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"default": "", "description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the rsync task should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when the rsync task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "recursive": {"default": true, "description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"default": true, "description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"default": true, "description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"default": false, "description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"default": false, "description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"default": false, "description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"default": false, "description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"default": false, "description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"default": true, "description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"default": true, "description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "validate_rpath": {"default": true, "description": "Validate the existence of the remote path.", "title": "validate_rpath", "type": "boolean", "_name_": "validate_rpath", "_required_": false}, "ssh_keyscan": {"default": false, "description": "Automatically add remote host key to user's known_hosts file.", "title": "ssh_keyscan", "type": "boolean", "_name_": "ssh_keyscan", "_required_": false}}, "required": ["path", "user"], "title": "rsync_task_create", "type": "object", "description": "Configuration for creating a new rsync task.", "_name_": "rsync_task_create", "_required_": true, "_attrs_order_": ["path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "validate_rpath", "ssh_keyscan"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the rsync task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "mode": {"default": "MODULE", "description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "In SSH mode, if `ssh_credential REDACTED, then keys in `user`'s .ssh directory are used.", "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"default": "", "description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"default": "PUSH", "description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"default": "", "description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the rsync task should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when the rsync task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "recursive": {"default": true, "description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"default": true, "description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"default": true, "description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"default": false, "description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"default": false, "description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"default": false, "description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"default": false, "description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"default": false, "description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"default": true, "description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"default": true, "description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"description": "Whether this rsync task is currently locked (running).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}}, "required": ["id", "path", "user", "locked", "job"], "title": "result", "type": "object", "description": "The newly created rsync task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "locked", "job"]}]}, "rsynctask.delete": {"description": "Delete Rsync Task of `id`.", "cli_description": "Delete Rsync Task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the rsync task to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Whether the rsync task was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "rsynctask.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the rsync task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "mode": {"default": "MODULE", "description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "In SSH mode, if `ssh_credential REDACTED, then keys in `user`'s .ssh directory are used.", "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"default": "", "description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"default": "PUSH", "description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"default": "", "description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the rsync task should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when the rsync task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "recursive": {"default": true, "description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"default": true, "description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"default": true, "description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"default": false, "description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"default": false, "description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"default": false, "description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"default": false, "description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"default": false, "description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"default": true, "description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"default": true, "description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"description": "Whether this rsync task is currently locked (running).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}}, "required": ["id", "path", "user", "locked", "job"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "locked", "job"]}]}, "rsynctask.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the rsync task.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "mode": {"description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "description": "In SSH mode, if `ssh_credential REDACTED, then keys in `user`'s .ssh directory are used.", "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the rsync task should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when the rsync task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "recursive": {"description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"description": "Whether this rsync task is currently locked (running).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": false}}, "title": "RsyncTaskQueryResultItem", "type": "object", "_attrs_order_": ["id", "path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "locked", "job"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the rsync task.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "mode": {"description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED}, {"type": "null"}], "description": "In SSH mode, if `ssh_credential REDACTED, then keys in `user`'s .ssh directory are used.", "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"description": "Cron schedule for when the rsync task should run.", "title": "schedule", "_name_": "schedule", "_required_": false}, "recursive": {"description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"description": "Whether this rsync task is currently locked (running).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": false}}, "title": "RsyncTaskQueryResultItem", "type": "object", "_attrs_order_": ["id", "path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "locked", "job"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "rsynctask.run": {"description": "Job to run rsync task of `id`.\n\nOutput is saved to job log excerpt (not syslog).", "cli_description": "Job to run rsync task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the rsync task to run immediately.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful rsync task execution.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "rsynctask.update": {"description": "Update Rsync Task of `id`.", "cli_description": "Update Rsync Task of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the rsync task to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": false}, "mode": {"description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED}, {"type": "null"}], "description": "Keychain credential REDACTED, "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the rsync task should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when the rsync task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "recursive": {"description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "validate_rpath": {"description": "Validate the existence of the remote path.", "title": "validate_rpath", "type": "boolean", "_name_": "validate_rpath", "_required_": false}, "ssh_keyscan": {"description": "Automatically add remote host key to user's known_hosts file.", "title": "ssh_keyscan", "type": "boolean", "_name_": "ssh_keyscan", "_required_": false}}, "title": "rsync_task_update", "type": "object", "description": "Updated configuration for the rsync task.", "_name_": "rsync_task_update", "_required_": true, "_attrs_order_": ["path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "validate_rpath", "ssh_keyscan"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the rsync task.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "path": {"description": "Local filesystem path to synchronize.", "maxLength": 1023, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "user": {"description": "Username to run the rsync task as.", "title": "user", "type": "string", "_name_": "user", "_required_": true}, "mode": {"default": "MODULE", "description": "Operating mechanism for Rsync, i.e. Rsync Module mode or Rsync SSH mode.", "enum": ["MODULE", "SSH"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "remotehost": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IP address or hostname of the remote system. If username differs on the remote host, \"username@remote_host\" format should be used.", "title": "remotehost", "_name_": "remotehost", "_required_": false}, "remoteport": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Port number for SSH connection. Only applies when `mode` is SSH.", "title": "remoteport", "_name_": "remoteport", "_required_": false}, "remotemodule": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of remote module, this attribute should be specified when `mode` is set to MODULE.", "title": "remotemodule", "_name_": "remotemodule", "_required_": false}, "ssh_credential REDACTED, "properties": {"id": {"description": "Unique identifier for this keychain credential REDACTED, "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "name": {"description": "Distinguishes this Keychain Credential REDACTED, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"description": "Type of credential REDACTED, "enum": ["SSH_KEY_PAIR", "SSH_CREDENTIAL REDACTED, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "attributes": {"anyOf": [{"additionalProperties": false, "description": "At least one of the two keys must be provided on creation.", "properties": {"private_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH private key in OpenSSH format. `null` if only public key is provided.", "title": "private_key", "_name_": "private_key", "_required_": false}, "public_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Can be omitted and automatically derived from the private key.", "title": "public_key", "_name_": "public_key", "_required_": false}}, "title": "SSHKeyPair", "type": "object", "_attrs_order_": ["private_key", "public_key"]}, {"additionalProperties": false, "properties": {"host": {"description": "SSH server hostname or IP address.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "port": {"default": 22, "description": "SSH server port number.", "title": "port", "type": "integer", "_name_": "port", "_required_": false}, "username": {"default": "root", "description": "SSH username for authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "private_key": {"description": "Keychain Credential REDACTED, "title": "private_key", "type": "integer", "_name_": "private_key", "_required_": true}, "remote_host_key": {"description": "Can be discovered with keychaincredential REDACTED, "title": "remote_host_key", "type": "string", "_name_": "remote_host_key", "_required_": true}, "connect_timeout": {"default": 10, "description": "Connection timeout in seconds for SSH connections.", "title": "connect_timeout", "type": "integer", "_name_": "connect_timeout", "_required_": false}}, "required": ["host", "private_key", "remote_host_key"], "title": "SSHCredential REDACTED, "type": "object", "_attrs_order_": ["host", "port", "username", "private_key", "remote_host_key", "connect_timeout"]}], "description": "Credential REDACTED, "title": "attributes", "_name_": "attributes", "_required_": true}}, "required": ["id", "name", "type", "attributes"], "title": "KeychainCredential REDACTED, "type": "object", "_attrs_order_": ["id", "name", "type", "attributes"]}, {"type": "null"}], "default": null, "description": "In SSH mode, if `ssh_credential REDACTED, then keys in `user`'s .ssh directory are used.", "title": "ssh_credential REDACTED, "_name_": "ssh_credential REDACTED, "_required_": false}, "remotepath": {"default": "", "description": "Path on the remote system to synchronize with.", "title": "remotepath", "type": "string", "_name_": "remotepath", "_required_": false}, "direction": {"default": "PUSH", "description": "Specify if data should be PULLED or PUSHED from the remote system.", "enum": ["PULL", "PUSH"], "title": "direction", "type": "string", "_name_": "direction", "_required_": false}, "desc": {"default": "", "description": "Description of the rsync task.", "title": "desc", "type": "string", "_name_": "desc", "_required_": false}, "schedule": {"additionalProperties": false, "properties": {"minute": {"default": "00", "description": "Minute when the rsync task should run (cron format).", "title": "minute", "type": "string", "_name_": "minute", "_required_": false}, "hour": {"default": "*", "description": "\"00\" - \"23\"", "title": "hour", "type": "string", "_name_": "hour", "_required_": false}, "dom": {"default": "*", "description": "\"1\" - \"31\"", "title": "dom", "type": "string", "_name_": "dom", "_required_": false}, "month": {"default": "*", "description": "\"1\" (January) - \"12\" (December)", "title": "month", "type": "string", "_name_": "month", "_required_": false}, "dow": {"default": "*", "description": "\"1\" (Monday) - \"7\" (Sunday)", "title": "dow", "type": "string", "_name_": "dow", "_required_": false}}, "title": "schedule", "type": "object", "description": "Cron schedule for when the rsync task should run.", "_name_": "schedule", "_required_": false, "_attrs_order_": ["minute", "hour", "dom", "month", "dow"]}, "recursive": {"default": true, "description": "Recursively transfer subdirectories.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": false}, "times": {"default": true, "description": "Preserve modification times of files.", "title": "times", "type": "boolean", "_name_": "times", "_required_": false}, "compress": {"default": true, "description": "Reduce the size of the data to be transmitted.", "title": "compress", "type": "boolean", "_name_": "compress", "_required_": false}, "archive": {"default": false, "description": "Make rsync run recursively, preserving symlinks, permissions, modification times, group, and special files.", "title": "archive", "type": "boolean", "_name_": "archive", "_required_": false}, "delete": {"default": false, "description": "Delete files in the destination directory that do not exist in the source directory.", "title": "delete", "type": "boolean", "_name_": "delete", "_required_": false}, "quiet": {"default": false, "description": "Suppress informational messages from rsync.", "title": "quiet", "type": "boolean", "_name_": "quiet", "_required_": false}, "preserveperm": {"default": false, "description": "Preserve original file permissions.", "title": "preserveperm", "type": "boolean", "_name_": "preserveperm", "_required_": false}, "preserveattr": {"default": false, "description": "Preserve extended attributes of files.", "title": "preserveattr", "type": "boolean", "_name_": "preserveattr", "_required_": false}, "delayupdates": {"default": true, "description": "Delay updating destination files until all transfers are complete.", "title": "delayupdates", "type": "boolean", "_name_": "delayupdates", "_required_": false}, "extra": {"description": "Array of additional rsync command-line options.", "items": [{"type": "string"}], "title": "extra", "type": "array", "_name_": "extra", "_required_": false}, "enabled": {"default": true, "description": "Whether this rsync task is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"description": "Whether this rsync task is currently locked (running).", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": true}, "job": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Information about the currently running job. `null` if no job is running.", "title": "job", "_name_": "job", "_required_": true}}, "required": ["id", "path", "user", "locked", "job"], "title": "result", "type": "object", "description": "The updated rsync task configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "path", "user", "mode", "remotehost", "remoteport", "remotemodule", "ssh_credential REDACTED, "remotepath", "direction", "desc", "schedule", "recursive", "times", "compress", "archive", "delete", "quiet", "preserveperm", "preserveattr", "delayupdates", "extra", "enabled", "locked", "job"]}]}, "service.control": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SERVICE_WRITE", "SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_ISCSI_WRITE", "SHARING_NFS_WRITE", "SHARING_NVME_TARGET_WRITE", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "The service operation to perform.", "enum": ["START", "STOP", "RESTART", "RELOAD"], "title": "verb", "type": "string", "_name_": "verb", "_required_": true}, {"description": "Name of the service to control.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, {"additionalProperties": false, "properties": {"ha_propagate": {"default": true, "description": "Whether to propagate the service operation to the HA peer in a high-availability setup.", "title": "ha_propagate", "type": "boolean", "_name_": "ha_propagate", "_required_": false}, "silent": {"default": true, "description": "Return `false` instead of an error if the operation fails.", "title": "silent", "type": "boolean", "_name_": "silent", "_required_": false}, "timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": 120, "description": "Maximum time in seconds to wait for the service operation to complete. `null` for no timeout.", "title": "timeout", "_name_": "timeout", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the service operation behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["ha_propagate", "silent", "timeout"]}], "returns": [{"description": "For \"START\", \"RESTART\", \"RELOAD\", indicate whether the service is running after performing the operation.\nFor \"STOP\", indicate whether the service was successfully stopped.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SERVICE_READ", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the service.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "service": {"description": "Name of the system service.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, "enable": {"description": "Whether the service is enabled to start on boot.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": true}, "state": {"description": "Current state of the service (e.g., 'RUNNING', 'STOPPED').", "title": "state", "type": "string", "_name_": "state", "_required_": true}, "pids": {"description": "Array of process IDs associated with this service.", "items": [{"type": "integer"}], "title": "pids", "type": "array", "_name_": "pids", "_required_": true}}, "required": ["id", "service", "enable", "state", "pids"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "service", "enable", "state", "pids"]}]}, "service.query": {"description": "Query all system services with `query-filters` and `query-options`.\n\nSupports the following extra options:\n`include_state` - performance optimization to avoid getting service state.\ndefaults to True.", "cli_description": "Query all system services with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SERVICE_READ", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the service.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "service": {"description": "Name of the system service.", "title": "service", "type": "string", "_name_": "service", "_required_": false}, "enable": {"description": "Whether the service is enabled to start on boot.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "state": {"description": "Current state of the service (e.g., 'RUNNING', 'STOPPED').", "title": "state", "type": "string", "_name_": "state", "_required_": false}, "pids": {"description": "Array of process IDs associated with this service.", "items": [{"type": "integer"}], "title": "pids", "type": "array", "_name_": "pids", "_required_": false}}, "title": "ServiceQueryResultItem", "type": "object", "_attrs_order_": ["id", "service", "enable", "state", "pids"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the service.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "service": {"description": "Name of the system service.", "title": "service", "type": "string", "_name_": "service", "_required_": false}, "enable": {"description": "Whether the service is enabled to start on boot.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "state": {"description": "Current state of the service (e.g., 'RUNNING', 'STOPPED').", "title": "state", "type": "string", "_name_": "state", "_required_": false}, "pids": {"description": "Array of process IDs associated with this service.", "items": [{"type": "integer"}], "title": "pids", "type": "array", "_name_": "pids", "_required_": false}}, "title": "ServiceQueryResultItem", "type": "object", "_attrs_order_": ["id", "service", "enable", "state", "pids"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "service.reload": {"description": "Reload the service specified by `service`.", "cli_description": "Reload the service specified by `service`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SERVICE_WRITE", "SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_ISCSI_WRITE", "SHARING_NFS_WRITE", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "Name of the service to reload.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, {"additionalProperties": false, "properties": {"ha_propagate": {"default": true, "description": "Whether to propagate the service operation to the HA peer in a high-availability setup.", "title": "ha_propagate", "type": "boolean", "_name_": "ha_propagate", "_required_": false}, "silent": {"default": true, "description": "Return `false` instead of an error if the operation fails.", "title": "silent", "type": "boolean", "_name_": "silent", "_required_": false}, "timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": 120, "description": "Maximum time in seconds to wait for the service operation to complete. `null` for no timeout.", "title": "timeout", "_name_": "timeout", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the reload operation behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["ha_propagate", "silent", "timeout"]}], "returns": [{"description": "The service is running after reload.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.restart": {"description": "Restart the service specified by `service`.", "cli_description": "Restart the service specified by `service`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SERVICE_WRITE", "SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_ISCSI_WRITE", "SHARING_NFS_WRITE", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "Name of the service to restart.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, {"additionalProperties": false, "properties": {"ha_propagate": {"default": true, "description": "Whether to propagate the service operation to the HA peer in a high-availability setup.", "title": "ha_propagate", "type": "boolean", "_name_": "ha_propagate", "_required_": false}, "silent": {"default": true, "description": "Return `false` instead of an error if the operation fails.", "title": "silent", "type": "boolean", "_name_": "silent", "_required_": false}, "timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": 120, "description": "Maximum time in seconds to wait for the service operation to complete. `null` for no timeout.", "title": "timeout", "_name_": "timeout", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the restart operation behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["ha_propagate", "silent", "timeout"]}], "returns": [{"description": "The service is running after the restart.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.start": {"description": "Start the service specified by `service`.", "cli_description": "Start the service specified by `service`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SERVICE_WRITE", "SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_ISCSI_WRITE", "SHARING_NFS_WRITE", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "Name of the service to start.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, {"additionalProperties": false, "properties": {"ha_propagate": {"default": true, "description": "Whether to propagate the service operation to the HA peer in a high-availability setup.", "title": "ha_propagate", "type": "boolean", "_name_": "ha_propagate", "_required_": false}, "silent": {"default": true, "description": "Return `false` instead of an error if the operation fails.", "title": "silent", "type": "boolean", "_name_": "silent", "_required_": false}, "timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": 120, "description": "Maximum time in seconds to wait for the service operation to complete. `null` for no timeout.", "title": "timeout", "_name_": "timeout", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the start operation behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["ha_propagate", "silent", "timeout"]}], "returns": [{"description": "`true` if the service started successfully.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.started": {"description": "Test if service specified by `service` has been started.", "cli_description": "Test if service specified by `service` has been started", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SERVICE_READ", "SHARING_ADMIN"], "accepts": [{"description": "Name of the service to check if running.", "title": "service", "type": "string", "_name_": "service", "_required_": true}], "returns": [{"description": "Service is running.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.started_or_enabled": {"description": "Test if service specified by `service` is started or enabled to start automatically.", "cli_description": "Test if service specified by `service` is started or enabled to start automatically", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SERVICE_READ", "SHARING_ADMIN"], "accepts": [{"description": "Name of the service to check if running or enabled.", "title": "service", "type": "string", "_name_": "service", "_required_": true}], "returns": [{"description": "Service is running or set to start on boot.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.stop": {"description": "Stop the service specified by `service`.", "cli_description": "Stop the service specified by `service`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SERVICE_WRITE", "SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_ISCSI_WRITE", "SHARING_NFS_WRITE", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "Name of the service to stop.", "title": "service", "type": "string", "_name_": "service", "_required_": true}, {"additionalProperties": false, "properties": {"ha_propagate": {"default": true, "description": "Whether to propagate the service operation to the HA peer in a high-availability setup.", "title": "ha_propagate", "type": "boolean", "_name_": "ha_propagate", "_required_": false}, "silent": {"default": true, "description": "Return `false` instead of an error if the operation fails.", "title": "silent", "type": "boolean", "_name_": "silent", "_required_": false}, "timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": 120, "description": "Maximum time in seconds to wait for the service operation to complete. `null` for no timeout.", "title": "timeout", "_name_": "timeout", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the stop operation behavior.", "_name_": "options", "_required_": false, "_attrs_order_": ["ha_propagate", "silent", "timeout"]}], "returns": [{"description": "`true` if the service stopped successfully.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "service.update": {"description": "Update service entry of `id_or_name`.", "cli_description": "Update service entry of `id_or_name`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SERVICE_WRITE", "SHARING_ADMIN", "SHARING_FTP_WRITE", "SHARING_ISCSI_WRITE", "SHARING_NFS_WRITE", "SHARING_NVME_TARGET_WRITE", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"anyOf": [{"type": "integer"}, {"type": "string"}], "description": "ID or name of the service to update.", "title": "id_or_name", "_name_": "id_or_name", "_required_": true}, {"additionalProperties": false, "properties": {"enable": {"description": "Whether the service should start on boot.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": true}}, "required": ["enable"], "title": "service_update", "type": "object", "description": "Updated configuration for the service.", "_name_": "service_update", "_required_": true, "_attrs_order_": ["enable"]}], "returns": [{"description": "The service ID.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "sharing.nfs.create": {"description": "Create a NFS Share.\n\n`path` local path to be exported.\n\n`aliases` IGNORED, for now.\n\n`networks` is a list of authorized networks that are allowed to access the share having format\n\"network/mask\" CIDR notation. If empty, all networks are allowed.\n\n`hosts` is a list of IP's/hostnames which are allowed to access the share. If empty, all IP's/hostnames are\nallowed.\n\n`expose_snapshots` enable TrueNAS Enterprise feature to allow access\nto the ZFS snapshot directory over NFS. This feature requires a valid\nenterprise license.", "cli_description": "Create a NFS Share", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NFS_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "aliases": {"default": [], "description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"default": "", "description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"default": [], "description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"default": [], "description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"default": false, "description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"default": [], "description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"default": true, "description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "expose_snapshots": {"default": false, "description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "required": ["path"], "title": "data", "type": "object", "description": "NFS share configuration data for the new share.", "_name_": "data", "_required_": true, "_attrs_order_": ["path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "expose_snapshots"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFS share.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "aliases": {"default": [], "description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"default": "", "description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"default": [], "description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"default": [], "description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"default": false, "description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"default": [], "description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"default": true, "description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}, "expose_snapshots": {"default": false, "description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "required": ["id", "path", "locked"], "title": "result", "type": "object", "description": "The created NFS share configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "locked", "expose_snapshots"]}]}, "sharing.nfs.delete": {"description": "Delete NFS Share of `id`.", "cli_description": "Delete NFS Share of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NFS_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NFS share to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the NFS share is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "sharing.nfs.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_READ", "SHARING_NFS_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFS share.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "aliases": {"default": [], "description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"default": "", "description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"default": [], "description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"default": [], "description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"default": false, "description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"default": [], "description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"default": true, "description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}, "expose_snapshots": {"default": false, "description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "required": ["id", "path", "locked"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "locked", "expose_snapshots"]}]}, "sharing.nfs.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_NFS_READ", "SHARING_NFS_WRITE", "SHARING_READ", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFS share.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "aliases": {"description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": false}, "expose_snapshots": {"description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "title": "NfsShareQueryResultItem", "type": "object", "_attrs_order_": ["id", "path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "locked", "expose_snapshots"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFS share.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "aliases": {"description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": false}, "expose_snapshots": {"description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "title": "NfsShareQueryResultItem", "type": "object", "_attrs_order_": ["id", "path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "locked", "expose_snapshots"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "sharing.nfs.update": {"description": "Update NFS Share of `id`.", "cli_description": "Update NFS Share of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_NFS_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the NFS share to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": false}, "aliases": {"description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "expose_snapshots": {"description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "title": "data", "type": "object", "description": "Updated NFS share configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "expose_snapshots"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NFS share.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "path": {"description": "Local path to be exported. ", "minLength": 1, "title": "path", "type": "string", "_name_": "path", "_required_": true}, "aliases": {"default": [], "description": "IGNORED for now. ", "items": [{"minLength": 1, "type": "string"}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "comment": {"default": "", "description": "User comment associated with share. ", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "networks": {"default": [], "description": "List of authorized networks that are allowed to access the share having format \"network/mask\" CIDR notation. Each entry must be unique. If empty, all networks are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "networks", "type": "array", "_name_": "networks", "_required_": false}, "hosts": {"default": [], "description": "List of IP's/hostnames which are allowed to access the share. No quotes or spaces are allowed.\nEach entry must be unique. If empty, all IP's/hostnames are allowed.\nExcessively long lists should be avoided.", "items": [{"minLength": 1, "type": "string"}], "title": "hosts", "type": "array", "_name_": "hosts", "_required_": false}, "ro": {"default": false, "description": "Export the share as read only. ", "title": "ro", "type": "boolean", "_name_": "ro", "_required_": false}, "maproot_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root user client to a specified user. ", "title": "maproot_user", "_name_": "maproot_user", "_required_": false}, "maproot_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map root group client to a specified group. ", "title": "maproot_group", "_name_": "maproot_group", "_required_": false}, "mapall_user": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client users to a specified user. ", "title": "mapall_user", "_name_": "mapall_user", "_required_": false}, "mapall_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Map all client groups to a specified group. ", "title": "mapall_group", "_name_": "mapall_group", "_required_": false}, "security": {"default": [], "description": "Specify the security schema. ", "items": [{"enum": ["SYS", "KRB5", "KRB5I", "KRB5P"], "type": "string"}], "title": "security", "type": "array", "_name_": "security", "_required_": false}, "enabled": {"default": true, "description": "Enable or disable the share. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}, "expose_snapshots": {"default": false, "description": "Enterprise feature to enable access to the ZFS snapshot directory for the export.\nExport path must be the root directory of a ZFS dataset.", "title": "expose_snapshots", "type": "boolean", "_name_": "expose_snapshots", "_required_": false}}, "required": ["id", "path", "locked"], "title": "result", "type": "object", "description": "The updated NFS share configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "path", "aliases", "comment", "networks", "hosts", "ro", "maproot_user", "maproot_group", "mapall_user", "mapall_group", "security", "enabled", "locked", "expose_snapshots"]}]}, "sharing.smb.create": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"purpose": {"default": "DEFAULT_SHARE", "description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": true}, "enabled": {"default": true, "description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"default": "", "description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"default": false, "description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"default": true, "description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"default": false, "description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "audit": {"additionalProperties": false, "description": "Audit configuration for monitoring SMB share access and operations.", "properties": {"enable": {"default": false, "description": "Turn on auditing for the SMB share. SMB share auditing may not be enabled if `enable_smb1` is `true` in the SMB service configuration.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "watch_list": {"default": [], "description": "Only audit the listed group accounts. If the list is empty, all groups will be audited. ", "examples": [["interns", "contractors"]], "items": [{"minLength": 1, "type": "string"}], "title": "watch_list", "type": "array", "_name_": "watch_list", "_required_": false}, "ignore_list": {"default": [], "description": "List of groups that will not be audited. ", "examples": [["automation", "apps"]], "items": [{"minLength": 1, "type": "string"}], "title": "ignore_list", "type": "array", "_name_": "ignore_list", "_required_": false}}, "title": "audit", "type": "object", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "_name_": "audit", "_required_": false, "_attrs_order_": ["enable", "watch_list", "ignore_list"]}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{"additionalProperties": false, "description": "These configuration options apply to shares with the `LEGACY_SHARE` purpose. ", "properties": {"purpose": {"const": "LEGACY_SHARE", "enum": ["LEGACY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "recyclebin": {"default": false, "description": "If set, deleted files are moved to per-user subdirectories in the `.recycle` directory. The SMB server creates the `.recycle` directory at the root of the SMB share if the file is in the same ZFS dataset as the share `path`. If the file is in a child ZFS dataset, the server uses the `mountpoint` of that dataset to create the `.recycle` directory.\n\nNOTE: This feature does not work with recycle bin features in client operating systems.\n\nWARNING: Do not use this feature instead of backups or ZFS snapshots. ", "title": "recyclebin", "type": "boolean", "_name_": "recyclebin", "_required_": false}, "path_suffix": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path suffix template for dynamic path generation. Uses SMB variable substitution patterns like `%D` (domain) and `%U` (username).", "examples": ["%D/%U"], "title": "path_suffix", "_name_": "path_suffix", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}, "guestok": {"default": false, "description": "If set, guest access to the share is allowed. This should not be used in production environments.\n\nNOTE: If a user account does not exist, the SMB server maps access to the guest account.\n\nWARNING: Additional client-side configuration downgrading security settings may be required in order to use this feature. ", "title": "guestok", "type": "boolean", "_name_": "guestok", "_required_": false}, "streams": {"default": true, "description": "If set, support for SMB alternate data streams is enabled.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "streams", "type": "boolean", "_name_": "streams", "_required_": false}, "durablehandle": {"default": true, "description": "If set, support for SMB durable handles is enabled.\n\nWARNING: This feature is incompatible with multiprotocol and local filesystem access. ", "title": "durablehandle", "type": "boolean", "_name_": "durablehandle", "_required_": false}, "shadowcopy": {"default": true, "description": "If set, previous versions of files contained in ZFS snapshots are accessible through standard SMB protocol operations on previous versions of files. ", "title": "shadowcopy", "type": "boolean", "_name_": "shadowcopy", "_required_": false}, "fsrvp": {"default": false, "description": "If set, enable support for the File Server Remote VSS Protocol. This allows clients to manage snapshots for the specified SMB share. ", "title": "fsrvp", "type": "boolean", "_name_": "fsrvp", "_required_": false}, "home": {"default": false, "description": "Use the `path` to store user home directories. Each user has a personal home directory and share. Users cannot access other user directories when connecting to shares.\n\nNOTE: This parameter changes the share `name` to `homes`. It also creates a dynamic share that mirrors the username of the user. Both shares use the same `path`. You can hide the homes share by turning off `browsable`. The dynamic user home share cannot be hidden.\n\nWARNING: This parameter changes the global server configuration. The SMB server will not authenticate users without a valid home directory or shell.", "title": "home", "type": "boolean", "_name_": "home", "_required_": false}, "acl": {"default": true, "description": "If set, enable mapping of local filesystem ACLs to NT ACLs for SMB clients. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "afp": {"default": false, "description": "If set, SMB server will read and store file metadata in an on-disk format compatible with the legacy AFP file server.\n\nWARNING: This should not be set unless the SMB server is sharing data that was originally written via the AFP protocol. ", "title": "afp", "type": "boolean", "_name_": "afp", "_required_": false}, "timemachine": {"default": false, "description": "If set, MacOS clients can use the share as a time machine target. ", "title": "timemachine", "type": "boolean", "_name_": "timemachine", "_required_": false}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is applied to the share.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "auxsmbconf": {"default": "", "description": "Additional parameters to set on the SMB share. Parameters must be separated by the new-line character.\n\nWARNING: These parameters are not validated and may cause undefined server behavior including data corruption or data loss.\n\nWARNING: Auxiliary parameters are an unsupported configuration.", "title": "auxsmbconf", "type": "string", "_name_": "auxsmbconf", "_required_": false}}, "required": ["purpose"], "title": "LegacyOpt", "type": "object", "_attrs_order_": ["purpose", "recyclebin", "path_suffix", "hostsallow", "hostsdeny", "guestok", "streams", "durablehandle", "shadowcopy", "fsrvp", "home", "acl", "afp", "timemachine", "timemachine_quota", "aapl_name_mangling", "vuid", "auxsmbconf"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `DEFAULT_SHARE` purpose. ", "properties": {"purpose": {"const": "DEFAULT_SHARE", "enum": ["DEFAULT_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "DefaultOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIMEMACHINE_SHARE` purpose. ", "properties": {"purpose": {"const": "TIMEMACHINE_SHARE", "enum": ["TIMEMACHINE_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size in bytes of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is set.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "auto_snapshot": {"default": false, "description": "If set, the server makes a ZFS snapshot of the share dataset when the client makes a new Time Machine backup. ", "title": "auto_snapshot", "type": "boolean", "_name_": "auto_snapshot", "_required_": false}, "auto_dataset_creation": {"default": false, "description": "If set, the server uses the `dataset_naming_schema` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\nNOTE: this setting requires the share path to be a dataset mountpoint.", "title": "auto_dataset_creation", "type": "boolean", "_name_": "auto_dataset_creation", "_required_": false}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use when `auto_dataset_creation` is specified. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username). See the `VARIABLE SUBSTITUTIONS` section in the smb.conf manpage for valid strings.\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules. For example, if `%u` is specified then the character `\\` may be inserted in the username (which is not supported in ZFS).", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeMachineOpt", "type": "object", "_attrs_order_": ["purpose", "timemachine_quota", "auto_snapshot", "auto_dataset_creation", "dataset_naming_schema", "vuid", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `MULTIPROTOCOL_SHARE` purpose. ", "properties": {"purpose": {"const": "MULTIPROTOCOL_SHARE", "enum": ["MULTIPROTOCOL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "MultiprotocolOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIME_LOCKED_SHARE` purpose. ", "properties": {"purpose": {"const": "TIME_LOCKED_SHARE", "enum": ["TIME_LOCKED_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "grace_period": {"default": 900, "description": "Time in seconds when write access to the file or directory is allowed. ", "maximum": 15552000, "minimum": 60, "title": "grace_period", "type": "integer", "_name_": "grace_period", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeLockedOpt", "type": "object", "_attrs_order_": ["purpose", "grace_period", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `PRIVATE_DATASETS_SHARE` purpose. ", "properties": {"purpose": {"const": "PRIVATE_DATASETS_SHARE", "enum": ["PRIVATE_DATASETS_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username).\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules.", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "auto_quota": {"default": 0, "description": "Set the specified ZFS quota (in gibibytes) on new datasets. If the value is zero, TrueNAS disables automatic quotas for the share.", "examples": [10], "minimum": 0, "title": "auto_quota", "type": "integer", "_name_": "auto_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "PrivateDatasetOpt", "type": "object", "_attrs_order_": ["purpose", "dataset_naming_schema", "auto_quota", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `EXTERNAL_SHARE` purpose. ", "properties": {"purpose": {"const": "EXTERNAL_SHARE", "enum": ["EXTERNAL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "remote_path": {"description": "This is the path to the external server and share. Each server entry must include a full domain name or IP address and share name. Separate the server and share with the `\\` character.\n\nWARNING: The SMB server and TrueNAS middleware do not check if external paths are reachable. ", "examples": [["192.168.0.200\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE, SERVER2.MYDOM.INTERNAL\\SHARE"]], "items": [{"minLength": 1, "type": "string"}], "title": "remote_path", "type": "array", "_name_": "remote_path", "_required_": true}}, "required": ["purpose", "remote_path"], "title": "ExternalOpt", "type": "object", "_attrs_order_": ["purpose", "remote_path"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `VEEAM_REPOSITORY_SHARE` purpose. ", "properties": {"purpose": {"const": "VEEAM_REPOSITORY_SHARE", "enum": ["VEEAM_REPOSITORY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "VeeamRepositoryOpt", "type": "object", "_attrs_order_": ["purpose", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `FCP_SHARE` purpose as a storage location for Final Cut Pro data. ", "properties": {"purpose": {"const": "FCP_SHARE", "enum": ["FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"const": true, "default": true, "description": "Illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients. ", "enum": [true], "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "FCPStorageOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}]}, {"type": "null"}], "default": null, "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "required": ["name", "path"], "title": "data", "type": "object", "description": "SMB share configuration data for the new share.", "_name_": "data", "_required_": true, "_attrs_order_": ["purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "audit", "options"]}], "returns": [{"additionalProperties": false, "description": "The created SMB share configuration.", "properties": {"id": {"description": "Unique identifier for this SMB share.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "purpose": {"default": "DEFAULT_SHARE", "description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": true}, "enabled": {"default": true, "description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"default": "", "description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"default": false, "description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"default": true, "description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"default": false, "description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}, "audit": {"additionalProperties": false, "description": "Audit configuration for monitoring SMB share access and operations.", "properties": {"enable": {"default": false, "description": "Turn on auditing for the SMB share. SMB share auditing may not be enabled if `enable_smb1` is `true` in the SMB service configuration.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "watch_list": {"default": [], "description": "Only audit the listed group accounts. If the list is empty, all groups will be audited. ", "examples": [["interns", "contractors"]], "items": [{"minLength": 1, "type": "string"}], "title": "watch_list", "type": "array", "_name_": "watch_list", "_required_": false}, "ignore_list": {"default": [], "description": "List of groups that will not be audited. ", "examples": [["automation", "apps"]], "items": [{"minLength": 1, "type": "string"}], "title": "ignore_list", "type": "array", "_name_": "ignore_list", "_required_": false}}, "title": "audit", "type": "object", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "_name_": "audit", "_required_": false, "_attrs_order_": ["enable", "watch_list", "ignore_list"]}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{"additionalProperties": false, "description": "These configuration options apply to shares with the `LEGACY_SHARE` purpose. ", "properties": {"purpose": {"const": "LEGACY_SHARE", "enum": ["LEGACY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "recyclebin": {"default": false, "description": "If set, deleted files are moved to per-user subdirectories in the `.recycle` directory. The SMB server creates the `.recycle` directory at the root of the SMB share if the file is in the same ZFS dataset as the share `path`. If the file is in a child ZFS dataset, the server uses the `mountpoint` of that dataset to create the `.recycle` directory.\n\nNOTE: This feature does not work with recycle bin features in client operating systems.\n\nWARNING: Do not use this feature instead of backups or ZFS snapshots. ", "title": "recyclebin", "type": "boolean", "_name_": "recyclebin", "_required_": false}, "path_suffix": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path suffix template for dynamic path generation. Uses SMB variable substitution patterns like `%D` (domain) and `%U` (username).", "examples": ["%D/%U"], "title": "path_suffix", "_name_": "path_suffix", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}, "guestok": {"default": false, "description": "If set, guest access to the share is allowed. This should not be used in production environments.\n\nNOTE: If a user account does not exist, the SMB server maps access to the guest account.\n\nWARNING: Additional client-side configuration downgrading security settings may be required in order to use this feature. ", "title": "guestok", "type": "boolean", "_name_": "guestok", "_required_": false}, "streams": {"default": true, "description": "If set, support for SMB alternate data streams is enabled.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "streams", "type": "boolean", "_name_": "streams", "_required_": false}, "durablehandle": {"default": true, "description": "If set, support for SMB durable handles is enabled.\n\nWARNING: This feature is incompatible with multiprotocol and local filesystem access. ", "title": "durablehandle", "type": "boolean", "_name_": "durablehandle", "_required_": false}, "shadowcopy": {"default": true, "description": "If set, previous versions of files contained in ZFS snapshots are accessible through standard SMB protocol operations on previous versions of files. ", "title": "shadowcopy", "type": "boolean", "_name_": "shadowcopy", "_required_": false}, "fsrvp": {"default": false, "description": "If set, enable support for the File Server Remote VSS Protocol. This allows clients to manage snapshots for the specified SMB share. ", "title": "fsrvp", "type": "boolean", "_name_": "fsrvp", "_required_": false}, "home": {"default": false, "description": "Use the `path` to store user home directories. Each user has a personal home directory and share. Users cannot access other user directories when connecting to shares.\n\nNOTE: This parameter changes the share `name` to `homes`. It also creates a dynamic share that mirrors the username of the user. Both shares use the same `path`. You can hide the homes share by turning off `browsable`. The dynamic user home share cannot be hidden.\n\nWARNING: This parameter changes the global server configuration. The SMB server will not authenticate users without a valid home directory or shell.", "title": "home", "type": "boolean", "_name_": "home", "_required_": false}, "acl": {"default": true, "description": "If set, enable mapping of local filesystem ACLs to NT ACLs for SMB clients. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "afp": {"default": false, "description": "If set, SMB server will read and store file metadata in an on-disk format compatible with the legacy AFP file server.\n\nWARNING: This should not be set unless the SMB server is sharing data that was originally written via the AFP protocol. ", "title": "afp", "type": "boolean", "_name_": "afp", "_required_": false}, "timemachine": {"default": false, "description": "If set, MacOS clients can use the share as a time machine target. ", "title": "timemachine", "type": "boolean", "_name_": "timemachine", "_required_": false}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is applied to the share.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "auxsmbconf": {"default": "", "description": "Additional parameters to set on the SMB share. Parameters must be separated by the new-line character.\n\nWARNING: These parameters are not validated and may cause undefined server behavior including data corruption or data loss.\n\nWARNING: Auxiliary parameters are an unsupported configuration.", "title": "auxsmbconf", "type": "string", "_name_": "auxsmbconf", "_required_": false}}, "required": ["purpose"], "title": "LegacyOpt", "type": "object", "_attrs_order_": ["purpose", "recyclebin", "path_suffix", "hostsallow", "hostsdeny", "guestok", "streams", "durablehandle", "shadowcopy", "fsrvp", "home", "acl", "afp", "timemachine", "timemachine_quota", "aapl_name_mangling", "vuid", "auxsmbconf"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `DEFAULT_SHARE` purpose. ", "properties": {"purpose": {"const": "DEFAULT_SHARE", "enum": ["DEFAULT_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "DefaultOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIMEMACHINE_SHARE` purpose. ", "properties": {"purpose": {"const": "TIMEMACHINE_SHARE", "enum": ["TIMEMACHINE_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size in bytes of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is set.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "auto_snapshot": {"default": false, "description": "If set, the server makes a ZFS snapshot of the share dataset when the client makes a new Time Machine backup. ", "title": "auto_snapshot", "type": "boolean", "_name_": "auto_snapshot", "_required_": false}, "auto_dataset_creation": {"default": false, "description": "If set, the server uses the `dataset_naming_schema` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\nNOTE: this setting requires the share path to be a dataset mountpoint.", "title": "auto_dataset_creation", "type": "boolean", "_name_": "auto_dataset_creation", "_required_": false}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use when `auto_dataset_creation` is specified. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username). See the `VARIABLE SUBSTITUTIONS` section in the smb.conf manpage for valid strings.\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules. For example, if `%u` is specified then the character `\\` may be inserted in the username (which is not supported in ZFS).", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeMachineOpt", "type": "object", "_attrs_order_": ["purpose", "timemachine_quota", "auto_snapshot", "auto_dataset_creation", "dataset_naming_schema", "vuid", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `MULTIPROTOCOL_SHARE` purpose. ", "properties": {"purpose": {"const": "MULTIPROTOCOL_SHARE", "enum": ["MULTIPROTOCOL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "MultiprotocolOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIME_LOCKED_SHARE` purpose. ", "properties": {"purpose": {"const": "TIME_LOCKED_SHARE", "enum": ["TIME_LOCKED_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "grace_period": {"default": 900, "description": "Time in seconds when write access to the file or directory is allowed. ", "maximum": 15552000, "minimum": 60, "title": "grace_period", "type": "integer", "_name_": "grace_period", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeLockedOpt", "type": "object", "_attrs_order_": ["purpose", "grace_period", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `PRIVATE_DATASETS_SHARE` purpose. ", "properties": {"purpose": {"const": "PRIVATE_DATASETS_SHARE", "enum": ["PRIVATE_DATASETS_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username).\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules.", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "auto_quota": {"default": 0, "description": "Set the specified ZFS quota (in gibibytes) on new datasets. If the value is zero, TrueNAS disables automatic quotas for the share.", "examples": [10], "minimum": 0, "title": "auto_quota", "type": "integer", "_name_": "auto_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "PrivateDatasetOpt", "type": "object", "_attrs_order_": ["purpose", "dataset_naming_schema", "auto_quota", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `EXTERNAL_SHARE` purpose. ", "properties": {"purpose": {"const": "EXTERNAL_SHARE", "enum": ["EXTERNAL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "remote_path": {"description": "This is the path to the external server and share. Each server entry must include a full domain name or IP address and share name. Separate the server and share with the `\\` character.\n\nWARNING: The SMB server and TrueNAS middleware do not check if external paths are reachable. ", "examples": [["192.168.0.200\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE, SERVER2.MYDOM.INTERNAL\\SHARE"]], "items": [{"minLength": 1, "type": "string"}], "title": "remote_path", "type": "array", "_name_": "remote_path", "_required_": true}}, "required": ["purpose", "remote_path"], "title": "ExternalOpt", "type": "object", "_attrs_order_": ["purpose", "remote_path"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `VEEAM_REPOSITORY_SHARE` purpose. ", "properties": {"purpose": {"const": "VEEAM_REPOSITORY_SHARE", "enum": ["VEEAM_REPOSITORY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "VeeamRepositoryOpt", "type": "object", "_attrs_order_": ["purpose", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `FCP_SHARE` purpose as a storage location for Final Cut Pro data. ", "properties": {"purpose": {"const": "FCP_SHARE", "enum": ["FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"const": true, "default": true, "description": "Illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients. ", "enum": [true], "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "FCPStorageOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}]}, {"type": "null"}], "default": null, "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "required": ["id", "name", "path", "locked"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "locked", "audit", "options"]}]}, "sharing.smb.delete": {"description": "Delete SMB Share of `id`. This will forcibly disconnect SMB clients\nthat are accessing the share.", "cli_description": "Delete SMB Share of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the SMB share to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the SMB share is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "sharing.smb.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "description": "SMB share entry on the TrueNAS server. ", "properties": {"id": {"description": "Unique identifier for this SMB share.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "purpose": {"default": "DEFAULT_SHARE", "description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": true}, "enabled": {"default": true, "description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"default": "", "description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"default": false, "description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"default": true, "description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"default": false, "description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}, "audit": {"additionalProperties": false, "description": "Audit configuration for monitoring SMB share access and operations.", "properties": {"enable": {"default": false, "description": "Turn on auditing for the SMB share. SMB share auditing may not be enabled if `enable_smb1` is `true` in the SMB service configuration.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "watch_list": {"default": [], "description": "Only audit the listed group accounts. If the list is empty, all groups will be audited. ", "examples": [["interns", "contractors"]], "items": [{"minLength": 1, "type": "string"}], "title": "watch_list", "type": "array", "_name_": "watch_list", "_required_": false}, "ignore_list": {"default": [], "description": "List of groups that will not be audited. ", "examples": [["automation", "apps"]], "items": [{"minLength": 1, "type": "string"}], "title": "ignore_list", "type": "array", "_name_": "ignore_list", "_required_": false}}, "title": "audit", "type": "object", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "_name_": "audit", "_required_": false, "_attrs_order_": ["enable", "watch_list", "ignore_list"]}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{"additionalProperties": false, "description": "These configuration options apply to shares with the `LEGACY_SHARE` purpose. ", "properties": {"purpose": {"const": "LEGACY_SHARE", "enum": ["LEGACY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "recyclebin": {"default": false, "description": "If set, deleted files are moved to per-user subdirectories in the `.recycle` directory. The SMB server creates the `.recycle` directory at the root of the SMB share if the file is in the same ZFS dataset as the share `path`. If the file is in a child ZFS dataset, the server uses the `mountpoint` of that dataset to create the `.recycle` directory.\n\nNOTE: This feature does not work with recycle bin features in client operating systems.\n\nWARNING: Do not use this feature instead of backups or ZFS snapshots. ", "title": "recyclebin", "type": "boolean", "_name_": "recyclebin", "_required_": false}, "path_suffix": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path suffix template for dynamic path generation. Uses SMB variable substitution patterns like `%D` (domain) and `%U` (username).", "examples": ["%D/%U"], "title": "path_suffix", "_name_": "path_suffix", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}, "guestok": {"default": false, "description": "If set, guest access to the share is allowed. This should not be used in production environments.\n\nNOTE: If a user account does not exist, the SMB server maps access to the guest account.\n\nWARNING: Additional client-side configuration downgrading security settings may be required in order to use this feature. ", "title": "guestok", "type": "boolean", "_name_": "guestok", "_required_": false}, "streams": {"default": true, "description": "If set, support for SMB alternate data streams is enabled.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "streams", "type": "boolean", "_name_": "streams", "_required_": false}, "durablehandle": {"default": true, "description": "If set, support for SMB durable handles is enabled.\n\nWARNING: This feature is incompatible with multiprotocol and local filesystem access. ", "title": "durablehandle", "type": "boolean", "_name_": "durablehandle", "_required_": false}, "shadowcopy": {"default": true, "description": "If set, previous versions of files contained in ZFS snapshots are accessible through standard SMB protocol operations on previous versions of files. ", "title": "shadowcopy", "type": "boolean", "_name_": "shadowcopy", "_required_": false}, "fsrvp": {"default": false, "description": "If set, enable support for the File Server Remote VSS Protocol. This allows clients to manage snapshots for the specified SMB share. ", "title": "fsrvp", "type": "boolean", "_name_": "fsrvp", "_required_": false}, "home": {"default": false, "description": "Use the `path` to store user home directories. Each user has a personal home directory and share. Users cannot access other user directories when connecting to shares.\n\nNOTE: This parameter changes the share `name` to `homes`. It also creates a dynamic share that mirrors the username of the user. Both shares use the same `path`. You can hide the homes share by turning off `browsable`. The dynamic user home share cannot be hidden.\n\nWARNING: This parameter changes the global server configuration. The SMB server will not authenticate users without a valid home directory or shell.", "title": "home", "type": "boolean", "_name_": "home", "_required_": false}, "acl": {"default": true, "description": "If set, enable mapping of local filesystem ACLs to NT ACLs for SMB clients. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "afp": {"default": false, "description": "If set, SMB server will read and store file metadata in an on-disk format compatible with the legacy AFP file server.\n\nWARNING: This should not be set unless the SMB server is sharing data that was originally written via the AFP protocol. ", "title": "afp", "type": "boolean", "_name_": "afp", "_required_": false}, "timemachine": {"default": false, "description": "If set, MacOS clients can use the share as a time machine target. ", "title": "timemachine", "type": "boolean", "_name_": "timemachine", "_required_": false}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is applied to the share.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "auxsmbconf": {"default": "", "description": "Additional parameters to set on the SMB share. Parameters must be separated by the new-line character.\n\nWARNING: These parameters are not validated and may cause undefined server behavior including data corruption or data loss.\n\nWARNING: Auxiliary parameters are an unsupported configuration.", "title": "auxsmbconf", "type": "string", "_name_": "auxsmbconf", "_required_": false}}, "required": ["purpose"], "title": "LegacyOpt", "type": "object", "_attrs_order_": ["purpose", "recyclebin", "path_suffix", "hostsallow", "hostsdeny", "guestok", "streams", "durablehandle", "shadowcopy", "fsrvp", "home", "acl", "afp", "timemachine", "timemachine_quota", "aapl_name_mangling", "vuid", "auxsmbconf"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `DEFAULT_SHARE` purpose. ", "properties": {"purpose": {"const": "DEFAULT_SHARE", "enum": ["DEFAULT_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "DefaultOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIMEMACHINE_SHARE` purpose. ", "properties": {"purpose": {"const": "TIMEMACHINE_SHARE", "enum": ["TIMEMACHINE_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size in bytes of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is set.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "auto_snapshot": {"default": false, "description": "If set, the server makes a ZFS snapshot of the share dataset when the client makes a new Time Machine backup. ", "title": "auto_snapshot", "type": "boolean", "_name_": "auto_snapshot", "_required_": false}, "auto_dataset_creation": {"default": false, "description": "If set, the server uses the `dataset_naming_schema` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\nNOTE: this setting requires the share path to be a dataset mountpoint.", "title": "auto_dataset_creation", "type": "boolean", "_name_": "auto_dataset_creation", "_required_": false}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use when `auto_dataset_creation` is specified. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username). See the `VARIABLE SUBSTITUTIONS` section in the smb.conf manpage for valid strings.\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules. For example, if `%u` is specified then the character `\\` may be inserted in the username (which is not supported in ZFS).", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeMachineOpt", "type": "object", "_attrs_order_": ["purpose", "timemachine_quota", "auto_snapshot", "auto_dataset_creation", "dataset_naming_schema", "vuid", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `MULTIPROTOCOL_SHARE` purpose. ", "properties": {"purpose": {"const": "MULTIPROTOCOL_SHARE", "enum": ["MULTIPROTOCOL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "MultiprotocolOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIME_LOCKED_SHARE` purpose. ", "properties": {"purpose": {"const": "TIME_LOCKED_SHARE", "enum": ["TIME_LOCKED_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "grace_period": {"default": 900, "description": "Time in seconds when write access to the file or directory is allowed. ", "maximum": 15552000, "minimum": 60, "title": "grace_period", "type": "integer", "_name_": "grace_period", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeLockedOpt", "type": "object", "_attrs_order_": ["purpose", "grace_period", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `PRIVATE_DATASETS_SHARE` purpose. ", "properties": {"purpose": {"const": "PRIVATE_DATASETS_SHARE", "enum": ["PRIVATE_DATASETS_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username).\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules.", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "auto_quota": {"default": 0, "description": "Set the specified ZFS quota (in gibibytes) on new datasets. If the value is zero, TrueNAS disables automatic quotas for the share.", "examples": [10], "minimum": 0, "title": "auto_quota", "type": "integer", "_name_": "auto_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "PrivateDatasetOpt", "type": "object", "_attrs_order_": ["purpose", "dataset_naming_schema", "auto_quota", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `EXTERNAL_SHARE` purpose. ", "properties": {"purpose": {"const": "EXTERNAL_SHARE", "enum": ["EXTERNAL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "remote_path": {"description": "This is the path to the external server and share. Each server entry must include a full domain name or IP address and share name. Separate the server and share with the `\\` character.\n\nWARNING: The SMB server and TrueNAS middleware do not check if external paths are reachable. ", "examples": [["192.168.0.200\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE, SERVER2.MYDOM.INTERNAL\\SHARE"]], "items": [{"minLength": 1, "type": "string"}], "title": "remote_path", "type": "array", "_name_": "remote_path", "_required_": true}}, "required": ["purpose", "remote_path"], "title": "ExternalOpt", "type": "object", "_attrs_order_": ["purpose", "remote_path"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `VEEAM_REPOSITORY_SHARE` purpose. ", "properties": {"purpose": {"const": "VEEAM_REPOSITORY_SHARE", "enum": ["VEEAM_REPOSITORY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "VeeamRepositoryOpt", "type": "object", "_attrs_order_": ["purpose", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `FCP_SHARE` purpose as a storage location for Final Cut Pro data. ", "properties": {"purpose": {"const": "FCP_SHARE", "enum": ["FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"const": true, "default": true, "description": "Illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients. ", "enum": [true], "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "FCPStorageOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}]}, {"type": "null"}], "default": null, "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "required": ["id", "name", "path", "locked"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "locked", "audit", "options"]}]}, "sharing.smb.getacl": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"share_name": {"description": "Name of the SMB share to retrieve ACL for.", "minLength": 1, "title": "share_name", "type": "string", "_name_": "share_name", "_required_": true}}, "required": ["share_name"], "title": "smb_getacl", "type": "object", "description": "SharingSMBGetaclArgs parameters.", "_name_": "smb_getacl", "_required_": true, "_attrs_order_": ["share_name"]}], "returns": [{"additionalProperties": false, "description": "The updated SMB share ACL configuration.", "properties": {"share_name": {"description": "Name of the SMB share. ", "minLength": 1, "title": "share_name", "type": "string", "_name_": "share_name", "_required_": true}, "share_acl": {"default": [{"ae_perm": "FULL", "ae_type": "ALLOWED", "ae_who_sid": "S-1-1-0", "ae_who_id": null, "ae_who_str": null}], "description": "List of SMB share ACL entries. ", "items": [{"additionalProperties": false, "description": "An SMB Share ACL Entry that grants or denies specific permissions to a principal.\nYou can identify the principal by a SID (`ae_who_sid`) or Unix ID (`ae_who_id`). ", "properties": {"ae_perm": {"description": "Permissions granted or denied to the principal. ", "enum": ["FULL", "CHANGE", "READ"], "title": "ae_perm", "type": "string", "_name_": "ae_perm", "_required_": true}, "ae_type": {"description": "The type of SMB share ACL entry.\nThis value determines whether the permissions (ae_perm) are granted (ALLOWED) or denied (DENIED). ", "enum": ["ALLOWED", "DENIED"], "title": "ae_type", "type": "string", "_name_": "ae_type", "_required_": true}, "ae_who_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The SID of the principal to whom this ACL entry applies. ", "title": "ae_who_sid", "_name_": "ae_who_sid", "_required_": false}, "ae_who_id": {"anyOf": [{"additionalProperties": false, "properties": {"id_type": {"description": "The type of Unix ID.\nIf the type is `USER`, the `xid` value refers to a Unix UID.\nIf the type is `GROUP`, the `xid` value refers to a Unix GID.", "enum": ["USER", "GROUP"], "title": "id_type", "type": "string", "_name_": "id_type", "_required_": true}, "id": {"description": "Unix user ID (UID) or group ID (GID) depending on the `id_type` field.", "maximum": 2147483647, "minimum": 0, "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["id_type", "id"], "title": "SMBShareAclEntryWhoId", "type": "object", "_attrs_order_": ["id_type", "id"]}, {"type": "null"}], "default": null, "description": "The Unix ID of the principal to whom this ACL entry applies. ", "title": "ae_who_id", "_name_": "ae_who_id", "_required_": false}, "ae_who_str": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The User or group name of the principal to whom this ACL entry applies. ", "title": "ae_who_str", "_name_": "ae_who_str", "_required_": false}}, "required": ["ae_perm", "ae_type"], "title": "SMBShareAclEntry", "type": "object", "_attrs_order_": ["ae_perm", "ae_type", "ae_who_sid", "ae_who_id", "ae_who_str"]}], "title": "share_acl", "type": "array", "_name_": "share_acl", "_required_": false}}, "required": ["share_name"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["share_name", "share_acl"]}]}, "sharing.smb.presets": {"description": "Retrieve pre-defined configuration sets for specific use-cases. These parameter\ncombinations are often non-obvious, but beneficial in these scenarios.", "cli_description": "Retrieve pre-defined configuration sets for specific use-cases", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "object"}, "description": "Available SMB share preset configurations by purpose.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "sharing.smb.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this SMB share.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "purpose": {"description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": false}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": false}, "enabled": {"description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": false}, "audit": {"additionalProperties": false, "description": "Audit configuration for monitoring SMB share access and operations.", "properties": {"enable": {"default": false, "description": "Turn on auditing for the SMB share. SMB share auditing may not be enabled if `enable_smb1` is `true` in the SMB service configuration.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "watch_list": {"default": [], "description": "Only audit the listed group accounts. If the list is empty, all groups will be audited. ", "examples": [["interns", "contractors"]], "items": [{"minLength": 1, "type": "string"}], "title": "watch_list", "type": "array", "_name_": "watch_list", "_required_": false}, "ignore_list": {"default": [], "description": "List of groups that will not be audited. ", "examples": [["automation", "apps"]], "items": [{"minLength": 1, "type": "string"}], "title": "ignore_list", "type": "array", "_name_": "ignore_list", "_required_": false}}, "title": "audit", "type": "object", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "_name_": "audit", "_required_": false, "_attrs_order_": ["enable", "watch_list", "ignore_list"]}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{"additionalProperties": false, "description": "These configuration options apply to shares with the `LEGACY_SHARE` purpose. ", "properties": {"purpose": {"const": "LEGACY_SHARE", "enum": ["LEGACY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "recyclebin": {"default": false, "description": "If set, deleted files are moved to per-user subdirectories in the `.recycle` directory. The SMB server creates the `.recycle` directory at the root of the SMB share if the file is in the same ZFS dataset as the share `path`. If the file is in a child ZFS dataset, the server uses the `mountpoint` of that dataset to create the `.recycle` directory.\n\nNOTE: This feature does not work with recycle bin features in client operating systems.\n\nWARNING: Do not use this feature instead of backups or ZFS snapshots. ", "title": "recyclebin", "type": "boolean", "_name_": "recyclebin", "_required_": false}, "path_suffix": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path suffix template for dynamic path generation. Uses SMB variable substitution patterns like `%D` (domain) and `%U` (username).", "examples": ["%D/%U"], "title": "path_suffix", "_name_": "path_suffix", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}, "guestok": {"default": false, "description": "If set, guest access to the share is allowed. This should not be used in production environments.\n\nNOTE: If a user account does not exist, the SMB server maps access to the guest account.\n\nWARNING: Additional client-side configuration downgrading security settings may be required in order to use this feature. ", "title": "guestok", "type": "boolean", "_name_": "guestok", "_required_": false}, "streams": {"default": true, "description": "If set, support for SMB alternate data streams is enabled.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "streams", "type": "boolean", "_name_": "streams", "_required_": false}, "durablehandle": {"default": true, "description": "If set, support for SMB durable handles is enabled.\n\nWARNING: This feature is incompatible with multiprotocol and local filesystem access. ", "title": "durablehandle", "type": "boolean", "_name_": "durablehandle", "_required_": false}, "shadowcopy": {"default": true, "description": "If set, previous versions of files contained in ZFS snapshots are accessible through standard SMB protocol operations on previous versions of files. ", "title": "shadowcopy", "type": "boolean", "_name_": "shadowcopy", "_required_": false}, "fsrvp": {"default": false, "description": "If set, enable support for the File Server Remote VSS Protocol. This allows clients to manage snapshots for the specified SMB share. ", "title": "fsrvp", "type": "boolean", "_name_": "fsrvp", "_required_": false}, "home": {"default": false, "description": "Use the `path` to store user home directories. Each user has a personal home directory and share. Users cannot access other user directories when connecting to shares.\n\nNOTE: This parameter changes the share `name` to `homes`. It also creates a dynamic share that mirrors the username of the user. Both shares use the same `path`. You can hide the homes share by turning off `browsable`. The dynamic user home share cannot be hidden.\n\nWARNING: This parameter changes the global server configuration. The SMB server will not authenticate users without a valid home directory or shell.", "title": "home", "type": "boolean", "_name_": "home", "_required_": false}, "acl": {"default": true, "description": "If set, enable mapping of local filesystem ACLs to NT ACLs for SMB clients. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "afp": {"default": false, "description": "If set, SMB server will read and store file metadata in an on-disk format compatible with the legacy AFP file server.\n\nWARNING: This should not be set unless the SMB server is sharing data that was originally written via the AFP protocol. ", "title": "afp", "type": "boolean", "_name_": "afp", "_required_": false}, "timemachine": {"default": false, "description": "If set, MacOS clients can use the share as a time machine target. ", "title": "timemachine", "type": "boolean", "_name_": "timemachine", "_required_": false}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is applied to the share.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "auxsmbconf": {"default": "", "description": "Additional parameters to set on the SMB share. Parameters must be separated by the new-line character.\n\nWARNING: These parameters are not validated and may cause undefined server behavior including data corruption or data loss.\n\nWARNING: Auxiliary parameters are an unsupported configuration.", "title": "auxsmbconf", "type": "string", "_name_": "auxsmbconf", "_required_": false}}, "required": ["purpose"], "title": "LegacyOpt", "type": "object", "_attrs_order_": ["purpose", "recyclebin", "path_suffix", "hostsallow", "hostsdeny", "guestok", "streams", "durablehandle", "shadowcopy", "fsrvp", "home", "acl", "afp", "timemachine", "timemachine_quota", "aapl_name_mangling", "vuid", "auxsmbconf"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `DEFAULT_SHARE` purpose. ", "properties": {"purpose": {"const": "DEFAULT_SHARE", "enum": ["DEFAULT_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "DefaultOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIMEMACHINE_SHARE` purpose. ", "properties": {"purpose": {"const": "TIMEMACHINE_SHARE", "enum": ["TIMEMACHINE_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size in bytes of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is set.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "auto_snapshot": {"default": false, "description": "If set, the server makes a ZFS snapshot of the share dataset when the client makes a new Time Machine backup. ", "title": "auto_snapshot", "type": "boolean", "_name_": "auto_snapshot", "_required_": false}, "auto_dataset_creation": {"default": false, "description": "If set, the server uses the `dataset_naming_schema` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\nNOTE: this setting requires the share path to be a dataset mountpoint.", "title": "auto_dataset_creation", "type": "boolean", "_name_": "auto_dataset_creation", "_required_": false}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use when `auto_dataset_creation` is specified. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username). See the `VARIABLE SUBSTITUTIONS` section in the smb.conf manpage for valid strings.\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules. For example, if `%u` is specified then the character `\\` may be inserted in the username (which is not supported in ZFS).", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeMachineOpt", "type": "object", "_attrs_order_": ["purpose", "timemachine_quota", "auto_snapshot", "auto_dataset_creation", "dataset_naming_schema", "vuid", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `MULTIPROTOCOL_SHARE` purpose. ", "properties": {"purpose": {"const": "MULTIPROTOCOL_SHARE", "enum": ["MULTIPROTOCOL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "MultiprotocolOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIME_LOCKED_SHARE` purpose. ", "properties": {"purpose": {"const": "TIME_LOCKED_SHARE", "enum": ["TIME_LOCKED_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "grace_period": {"default": 900, "description": "Time in seconds when write access to the file or directory is allowed. ", "maximum": 15552000, "minimum": 60, "title": "grace_period", "type": "integer", "_name_": "grace_period", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeLockedOpt", "type": "object", "_attrs_order_": ["purpose", "grace_period", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `PRIVATE_DATASETS_SHARE` purpose. ", "properties": {"purpose": {"const": "PRIVATE_DATASETS_SHARE", "enum": ["PRIVATE_DATASETS_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username).\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules.", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "auto_quota": {"default": 0, "description": "Set the specified ZFS quota (in gibibytes) on new datasets. If the value is zero, TrueNAS disables automatic quotas for the share.", "examples": [10], "minimum": 0, "title": "auto_quota", "type": "integer", "_name_": "auto_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "PrivateDatasetOpt", "type": "object", "_attrs_order_": ["purpose", "dataset_naming_schema", "auto_quota", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `EXTERNAL_SHARE` purpose. ", "properties": {"purpose": {"const": "EXTERNAL_SHARE", "enum": ["EXTERNAL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "remote_path": {"description": "This is the path to the external server and share. Each server entry must include a full domain name or IP address and share name. Separate the server and share with the `\\` character.\n\nWARNING: The SMB server and TrueNAS middleware do not check if external paths are reachable. ", "examples": [["192.168.0.200\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE, SERVER2.MYDOM.INTERNAL\\SHARE"]], "items": [{"minLength": 1, "type": "string"}], "title": "remote_path", "type": "array", "_name_": "remote_path", "_required_": true}}, "required": ["purpose", "remote_path"], "title": "ExternalOpt", "type": "object", "_attrs_order_": ["purpose", "remote_path"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `VEEAM_REPOSITORY_SHARE` purpose. ", "properties": {"purpose": {"const": "VEEAM_REPOSITORY_SHARE", "enum": ["VEEAM_REPOSITORY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "VeeamRepositoryOpt", "type": "object", "_attrs_order_": ["purpose", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `FCP_SHARE` purpose as a storage location for Final Cut Pro data. ", "properties": {"purpose": {"const": "FCP_SHARE", "enum": ["FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"const": true, "default": true, "description": "Illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients. ", "enum": [true], "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "FCPStorageOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}]}, {"type": "null"}], "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "title": "SmbShareQueryResultItem", "type": "object", "_attrs_order_": ["id", "purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "locked", "audit", "options"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for this SMB share.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "purpose": {"description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": false}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": false}, "enabled": {"description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": false}, "audit": {"description": "Audit configuration for monitoring SMB share access and operations.", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "title": "audit", "_name_": "audit", "_required_": false}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{}, {}, {}, {}, {}, {}, {}, {}, {}]}, {"type": "null"}], "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "title": "SmbShareQueryResultItem", "type": "object", "_attrs_order_": ["id", "purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "locked", "audit", "options"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "sharing.smb.setacl": {"description": "Set an ACL on `share_name`. This only impacts access through the SMB protocol.\n\n`share_name` the name of the share\n\n`share_acl` a list of ACL entries (dictionaries) with the following keys:\n\n`ae_who_sid` who the ACL entry applies to expressed as a Windows SID\n\n`ae_who_id` Unix ID information for user or group to which the ACL entry applies.\n\n`ae_perm` string representation of the permissions granted to the user or group.\nFULL - grants read, write, execute, delete, write acl, and change owner.\nCHANGE - grants read, write, execute, and delete.\nREAD - grants read and execute.\n\n`ae_type` can be ALLOWED or DENIED.", "cli_description": "Set an ACL on `share_name`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"share_name": {"description": "Name of the SMB share. ", "minLength": 1, "title": "share_name", "type": "string", "_name_": "share_name", "_required_": true}, "share_acl": {"default": [{"ae_perm": "FULL", "ae_type": "ALLOWED", "ae_who_sid": "S-1-1-0", "ae_who_id": null, "ae_who_str": null}], "description": "List of SMB share ACL entries. ", "items": [{"additionalProperties": false, "description": "An SMB Share ACL Entry that grants or denies specific permissions to a principal.\nYou can identify the principal by a SID (`ae_who_sid`) or Unix ID (`ae_who_id`). ", "properties": {"ae_perm": {"description": "Permissions granted or denied to the principal. ", "enum": ["FULL", "CHANGE", "READ"], "title": "ae_perm", "type": "string", "_name_": "ae_perm", "_required_": true}, "ae_type": {"description": "The type of SMB share ACL entry.\nThis value determines whether the permissions (ae_perm) are granted (ALLOWED) or denied (DENIED). ", "enum": ["ALLOWED", "DENIED"], "title": "ae_type", "type": "string", "_name_": "ae_type", "_required_": true}, "ae_who_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The SID of the principal to whom this ACL entry applies. ", "title": "ae_who_sid", "_name_": "ae_who_sid", "_required_": false}, "ae_who_id": {"anyOf": [{"additionalProperties": false, "properties": {"id_type": {"description": "The type of Unix ID.\nIf the type is `USER`, the `xid` value refers to a Unix UID.\nIf the type is `GROUP`, the `xid` value refers to a Unix GID.", "enum": ["USER", "GROUP"], "title": "id_type", "type": "string", "_name_": "id_type", "_required_": true}, "id": {"description": "Unix user ID (UID) or group ID (GID) depending on the `id_type` field.", "maximum": 2147483647, "minimum": 0, "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["id_type", "id"], "title": "SMBShareAclEntryWhoId", "type": "object", "_attrs_order_": ["id_type", "id"]}, {"type": "null"}], "default": null, "description": "The Unix ID of the principal to whom this ACL entry applies. ", "title": "ae_who_id", "_name_": "ae_who_id", "_required_": false}, "ae_who_str": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The User or group name of the principal to whom this ACL entry applies. ", "title": "ae_who_str", "_name_": "ae_who_str", "_required_": false}}, "required": ["ae_perm", "ae_type"], "title": "SMBShareAclEntry", "type": "object", "_attrs_order_": ["ae_perm", "ae_type", "ae_who_sid", "ae_who_id", "ae_who_str"]}], "title": "share_acl", "type": "array", "_name_": "share_acl", "_required_": false}}, "required": ["share_name"], "title": "smb_setacl", "type": "object", "description": "SharingSMBSetaclArgs parameters.", "_name_": "smb_setacl", "_required_": true, "_attrs_order_": ["share_name", "share_acl"]}], "returns": [{"additionalProperties": false, "description": "The updated SMB share ACL configuration.", "properties": {"share_name": {"description": "Name of the SMB share. ", "minLength": 1, "title": "share_name", "type": "string", "_name_": "share_name", "_required_": true}, "share_acl": {"default": [{"ae_perm": "FULL", "ae_type": "ALLOWED", "ae_who_sid": "S-1-1-0", "ae_who_id": null, "ae_who_str": null}], "description": "List of SMB share ACL entries. ", "items": [{"additionalProperties": false, "description": "An SMB Share ACL Entry that grants or denies specific permissions to a principal.\nYou can identify the principal by a SID (`ae_who_sid`) or Unix ID (`ae_who_id`). ", "properties": {"ae_perm": {"description": "Permissions granted or denied to the principal. ", "enum": ["FULL", "CHANGE", "READ"], "title": "ae_perm", "type": "string", "_name_": "ae_perm", "_required_": true}, "ae_type": {"description": "The type of SMB share ACL entry.\nThis value determines whether the permissions (ae_perm) are granted (ALLOWED) or denied (DENIED). ", "enum": ["ALLOWED", "DENIED"], "title": "ae_type", "type": "string", "_name_": "ae_type", "_required_": true}, "ae_who_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The SID of the principal to whom this ACL entry applies. ", "title": "ae_who_sid", "_name_": "ae_who_sid", "_required_": false}, "ae_who_id": {"anyOf": [{"additionalProperties": false, "properties": {"id_type": {"description": "The type of Unix ID.\nIf the type is `USER`, the `xid` value refers to a Unix UID.\nIf the type is `GROUP`, the `xid` value refers to a Unix GID.", "enum": ["USER", "GROUP"], "title": "id_type", "type": "string", "_name_": "id_type", "_required_": true}, "id": {"description": "Unix user ID (UID) or group ID (GID) depending on the `id_type` field.", "maximum": 2147483647, "minimum": 0, "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["id_type", "id"], "title": "SMBShareAclEntryWhoId", "type": "object", "_attrs_order_": ["id_type", "id"]}, {"type": "null"}], "default": null, "description": "The Unix ID of the principal to whom this ACL entry applies. ", "title": "ae_who_id", "_name_": "ae_who_id", "_required_": false}, "ae_who_str": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "The User or group name of the principal to whom this ACL entry applies. ", "title": "ae_who_str", "_name_": "ae_who_str", "_required_": false}}, "required": ["ae_perm", "ae_type"], "title": "SMBShareAclEntry", "type": "object", "_attrs_order_": ["ae_perm", "ae_type", "ae_who_sid", "ae_who_id", "ae_who_str"]}], "title": "share_acl", "type": "array", "_name_": "share_acl", "_required_": false}}, "required": ["share_name"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["share_name", "share_acl"]}]}, "sharing.smb.share_precheck": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of the SMB share to validate (optional).", "title": "name", "_name_": "name", "_required_": false}}, "title": "smb_share_precheck", "type": "object", "description": "SharingSMBSharePrecheckArgs parameters.", "_name_": "smb_share_precheck", "_required_": true, "_attrs_order_": ["name"]}], "returns": [{"description": "Returns `null` when the SMB share configuration passes validation checks.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "sharing.smb.update": {"description": null, "cli_description": "", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"description": "ID of the SMB share to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"purpose": {"description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": false}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": false}, "enabled": {"description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "audit": {"additionalProperties": false, "description": "Audit configuration for monitoring SMB share access and operations.", "properties": {"enable": {"default": false, "description": "Turn on auditing for the SMB share. SMB share auditing may not be enabled if `enable_smb1` is `true` in the SMB service configuration.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "watch_list": {"default": [], "description": "Only audit the listed group accounts. If the list is empty, all groups will be audited. ", "examples": [["interns", "contractors"]], "items": [{"minLength": 1, "type": "string"}], "title": "watch_list", "type": "array", "_name_": "watch_list", "_required_": false}, "ignore_list": {"default": [], "description": "List of groups that will not be audited. ", "examples": [["automation", "apps"]], "items": [{"minLength": 1, "type": "string"}], "title": "ignore_list", "type": "array", "_name_": "ignore_list", "_required_": false}}, "title": "audit", "type": "object", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "_name_": "audit", "_required_": false, "_attrs_order_": ["enable", "watch_list", "ignore_list"]}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{"additionalProperties": false, "description": "These configuration options apply to shares with the `LEGACY_SHARE` purpose. ", "properties": {"purpose": {"const": "LEGACY_SHARE", "enum": ["LEGACY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "recyclebin": {"default": false, "description": "If set, deleted files are moved to per-user subdirectories in the `.recycle` directory. The SMB server creates the `.recycle` directory at the root of the SMB share if the file is in the same ZFS dataset as the share `path`. If the file is in a child ZFS dataset, the server uses the `mountpoint` of that dataset to create the `.recycle` directory.\n\nNOTE: This feature does not work with recycle bin features in client operating systems.\n\nWARNING: Do not use this feature instead of backups or ZFS snapshots. ", "title": "recyclebin", "type": "boolean", "_name_": "recyclebin", "_required_": false}, "path_suffix": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path suffix template for dynamic path generation. Uses SMB variable substitution patterns like `%D` (domain) and `%U` (username).", "examples": ["%D/%U"], "title": "path_suffix", "_name_": "path_suffix", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}, "guestok": {"default": false, "description": "If set, guest access to the share is allowed. This should not be used in production environments.\n\nNOTE: If a user account does not exist, the SMB server maps access to the guest account.\n\nWARNING: Additional client-side configuration downgrading security settings may be required in order to use this feature. ", "title": "guestok", "type": "boolean", "_name_": "guestok", "_required_": false}, "streams": {"default": true, "description": "If set, support for SMB alternate data streams is enabled.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "streams", "type": "boolean", "_name_": "streams", "_required_": false}, "durablehandle": {"default": true, "description": "If set, support for SMB durable handles is enabled.\n\nWARNING: This feature is incompatible with multiprotocol and local filesystem access. ", "title": "durablehandle", "type": "boolean", "_name_": "durablehandle", "_required_": false}, "shadowcopy": {"default": true, "description": "If set, previous versions of files contained in ZFS snapshots are accessible through standard SMB protocol operations on previous versions of files. ", "title": "shadowcopy", "type": "boolean", "_name_": "shadowcopy", "_required_": false}, "fsrvp": {"default": false, "description": "If set, enable support for the File Server Remote VSS Protocol. This allows clients to manage snapshots for the specified SMB share. ", "title": "fsrvp", "type": "boolean", "_name_": "fsrvp", "_required_": false}, "home": {"default": false, "description": "Use the `path` to store user home directories. Each user has a personal home directory and share. Users cannot access other user directories when connecting to shares.\n\nNOTE: This parameter changes the share `name` to `homes`. It also creates a dynamic share that mirrors the username of the user. Both shares use the same `path`. You can hide the homes share by turning off `browsable`. The dynamic user home share cannot be hidden.\n\nWARNING: This parameter changes the global server configuration. The SMB server will not authenticate users without a valid home directory or shell.", "title": "home", "type": "boolean", "_name_": "home", "_required_": false}, "acl": {"default": true, "description": "If set, enable mapping of local filesystem ACLs to NT ACLs for SMB clients. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "afp": {"default": false, "description": "If set, SMB server will read and store file metadata in an on-disk format compatible with the legacy AFP file server.\n\nWARNING: This should not be set unless the SMB server is sharing data that was originally written via the AFP protocol. ", "title": "afp", "type": "boolean", "_name_": "afp", "_required_": false}, "timemachine": {"default": false, "description": "If set, MacOS clients can use the share as a time machine target. ", "title": "timemachine", "type": "boolean", "_name_": "timemachine", "_required_": false}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is applied to the share.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "auxsmbconf": {"default": "", "description": "Additional parameters to set on the SMB share. Parameters must be separated by the new-line character.\n\nWARNING: These parameters are not validated and may cause undefined server behavior including data corruption or data loss.\n\nWARNING: Auxiliary parameters are an unsupported configuration.", "title": "auxsmbconf", "type": "string", "_name_": "auxsmbconf", "_required_": false}}, "required": ["purpose"], "title": "LegacyOpt", "type": "object", "_attrs_order_": ["purpose", "recyclebin", "path_suffix", "hostsallow", "hostsdeny", "guestok", "streams", "durablehandle", "shadowcopy", "fsrvp", "home", "acl", "afp", "timemachine", "timemachine_quota", "aapl_name_mangling", "vuid", "auxsmbconf"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `DEFAULT_SHARE` purpose. ", "properties": {"purpose": {"const": "DEFAULT_SHARE", "enum": ["DEFAULT_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "DefaultOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIMEMACHINE_SHARE` purpose. ", "properties": {"purpose": {"const": "TIMEMACHINE_SHARE", "enum": ["TIMEMACHINE_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size in bytes of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is set.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "auto_snapshot": {"default": false, "description": "If set, the server makes a ZFS snapshot of the share dataset when the client makes a new Time Machine backup. ", "title": "auto_snapshot", "type": "boolean", "_name_": "auto_snapshot", "_required_": false}, "auto_dataset_creation": {"default": false, "description": "If set, the server uses the `dataset_naming_schema` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\nNOTE: this setting requires the share path to be a dataset mountpoint.", "title": "auto_dataset_creation", "type": "boolean", "_name_": "auto_dataset_creation", "_required_": false}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use when `auto_dataset_creation` is specified. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username). See the `VARIABLE SUBSTITUTIONS` section in the smb.conf manpage for valid strings.\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules. For example, if `%u` is specified then the character `\\` may be inserted in the username (which is not supported in ZFS).", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeMachineOpt", "type": "object", "_attrs_order_": ["purpose", "timemachine_quota", "auto_snapshot", "auto_dataset_creation", "dataset_naming_schema", "vuid", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `MULTIPROTOCOL_SHARE` purpose. ", "properties": {"purpose": {"const": "MULTIPROTOCOL_SHARE", "enum": ["MULTIPROTOCOL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "MultiprotocolOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIME_LOCKED_SHARE` purpose. ", "properties": {"purpose": {"const": "TIME_LOCKED_SHARE", "enum": ["TIME_LOCKED_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "grace_period": {"default": 900, "description": "Time in seconds when write access to the file or directory is allowed. ", "maximum": 15552000, "minimum": 60, "title": "grace_period", "type": "integer", "_name_": "grace_period", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeLockedOpt", "type": "object", "_attrs_order_": ["purpose", "grace_period", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `PRIVATE_DATASETS_SHARE` purpose. ", "properties": {"purpose": {"const": "PRIVATE_DATASETS_SHARE", "enum": ["PRIVATE_DATASETS_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username).\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules.", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "auto_quota": {"default": 0, "description": "Set the specified ZFS quota (in gibibytes) on new datasets. If the value is zero, TrueNAS disables automatic quotas for the share.", "examples": [10], "minimum": 0, "title": "auto_quota", "type": "integer", "_name_": "auto_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "PrivateDatasetOpt", "type": "object", "_attrs_order_": ["purpose", "dataset_naming_schema", "auto_quota", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `EXTERNAL_SHARE` purpose. ", "properties": {"purpose": {"const": "EXTERNAL_SHARE", "enum": ["EXTERNAL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "remote_path": {"description": "This is the path to the external server and share. Each server entry must include a full domain name or IP address and share name. Separate the server and share with the `\\` character.\n\nWARNING: The SMB server and TrueNAS middleware do not check if external paths are reachable. ", "examples": [["192.168.0.200\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE, SERVER2.MYDOM.INTERNAL\\SHARE"]], "items": [{"minLength": 1, "type": "string"}], "title": "remote_path", "type": "array", "_name_": "remote_path", "_required_": true}}, "required": ["purpose", "remote_path"], "title": "ExternalOpt", "type": "object", "_attrs_order_": ["purpose", "remote_path"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `VEEAM_REPOSITORY_SHARE` purpose. ", "properties": {"purpose": {"const": "VEEAM_REPOSITORY_SHARE", "enum": ["VEEAM_REPOSITORY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "VeeamRepositoryOpt", "type": "object", "_attrs_order_": ["purpose", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `FCP_SHARE` purpose as a storage location for Final Cut Pro data. ", "properties": {"purpose": {"const": "FCP_SHARE", "enum": ["FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"const": true, "default": true, "description": "Illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients. ", "enum": [true], "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "FCPStorageOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}]}, {"type": "null"}], "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "title": "data", "type": "object", "description": "Updated SMB share configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "audit", "options"]}], "returns": [{"additionalProperties": false, "description": "The updated SMB share configuration.", "properties": {"id": {"description": "Unique identifier for this SMB share.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "purpose": {"default": "DEFAULT_SHARE", "description": "This parameter sets the purpose of the SMB share. It controls how the SMB share behaves and what features are available through options. The DEFAULT_SHARE setting is best for most applications, and should be used, unless there is a specific reason to change it.\n\n* `DEFAULT_SHARE`: Set the SMB share for best compatibility with common SMB clients.\n\n* `LEGACY_SHARE`: Set the SMB share for compatibility with older TrueNAS versions. Automated backend migrations use this to help the administrator move to better-supported share settings. It should not be used for new SMB shares.\n\n* `TIMEMACHINE_SHARE`: The SMB share is presented to MacOS clients as a time machine target.\n NOTE: `aapl_extensions` must be set in the global `smb.config`.\n\n* `MULTIPROTOCOL_SHARE`: The SMB share is configured for multi-protocol access. Set this if the `path` is shared through NFS, FTP, or used by containers or apps.\n NOTE: This setting can reduce SMB share performance because it turns off some SMB features for safer interoperability with external processes.\n\n* `TIME_LOCKED_SHARE`: The SMB share makes files read-only through the SMB protocol after the set grace_period ends.\n WARNING: This setting does not work if the `path` is accessed locally or if another SMB share without the `TIME_LOCKED_SHARE` purpose uses the same path.\n WARNING: This setting might not meet regulatory requirements for write-once storage.\n\n* `PRIVATE_DATASETS_SHARE`: The server uses the specified `dataset_naming_schema` in `options` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\n* `EXTERNAL_SHARE`: The SMB share is a DFS proxy to a share hosted on an external SMB server.\n\n* `VEEAM_REPOSITORY_SHARE`: The SMB share is a repository for Veeam Backup & Replication and supports Fast Clone.\n NOTE: This feature is available only for TrueNAS Enterprise customers.\n\n* `FCP_SHARE`: The SMB share is a used for Final Cut Pro storage. This feature automatically configures the share to provide storage according to Apple support guidelines described in https://support.apple.com/en-ca/101919. NOTE: `aapl_extensions` must be set in the global `smb.config`. WARNING: This feature forcibly enables `aapl_name_mangling` on the SMB share which may cause unexpected behavior for data that was written without this feature enabled.", "enum": ["DEFAULT_SHARE", "LEGACY_SHARE", "TIMEMACHINE_SHARE", "MULTIPROTOCOL_SHARE", "TIME_LOCKED_SHARE", "PRIVATE_DATASETS_SHARE", "EXTERNAL_SHARE", "VEEAM_REPOSITORY_SHARE", "FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": false}, "name": {"description": "SMB share name. SMB share names are case-insensitive and must be unique, and are subject to the following restrictions:\n\n* A share name must be no more than 80 characters in length.\n\n* The following characters are illegal in a share name: `\\ / [ ] : | < > + = ; , * ? \"`\n\n* Unicode control characters are illegal in a share name.\n\n* The following share names are not allowed: global, printers, homes.", "examples": ["SHARE", "Macrodata_refinement"], "title": "name", "type": "string", "_name_": "name", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"const": "EXTERNAL", "enum": ["EXTERNAL"], "type": "string"}], "description": "Local server path to share by using the SMB protocol. The path must start with `/mnt/` and must be in a ZFS pool.\n\nUse the string `EXTERNAL` if the share works as a DFS proxy.\n\nWARNING: The TrueNAS server does not check if external paths are reachable. ", "examples": ["/mnt/dozer/SHARE", "EXTERNAL"], "title": "path", "_name_": "path", "_required_": true}, "enabled": {"default": true, "description": "If unset, the SMB share is not available over the SMB protocol. ", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "comment": {"default": "", "description": "Text field that is seen next to a share when an SMB client requests a list of SMB shares on the TrueNAS server. ", "examples": ["Mammalian nurturable"], "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "readonly": {"default": false, "description": "If set, SMB clients cannot create or change files and directories in the SMB share.\n\nNOTE: If set, the share path is still writeable by local processes or other file sharing protocols. ", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "browsable": {"default": true, "description": "If set, the share is included when an SMB client requests a list of SMB shares on the TrueNAS server. ", "title": "browsable", "type": "boolean", "_name_": "browsable", "_required_": false}, "access_based_share_enumeration": {"default": false, "description": "If set, the share is only included when an SMB client requests a list of shares on the SMB server if the share (not filesystem) access control list (see `sharing.smb.getacl`) grants access to the user. ", "title": "access_based_share_enumeration", "type": "boolean", "_name_": "access_based_share_enumeration", "_required_": false}, "locked": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Read-only value indicating whether the share is located on a locked dataset.\n\nReturns:\n - True: The share is in a locked dataset.\n - False: The share is not in a locked dataset.\n - None: Lock status is not available because path locking information was not requested.", "title": "locked", "_name_": "locked", "_required_": true}, "audit": {"additionalProperties": false, "description": "Audit configuration for monitoring SMB share access and operations.", "properties": {"enable": {"default": false, "description": "Turn on auditing for the SMB share. SMB share auditing may not be enabled if `enable_smb1` is `true` in the SMB service configuration.", "title": "enable", "type": "boolean", "_name_": "enable", "_required_": false}, "watch_list": {"default": [], "description": "Only audit the listed group accounts. If the list is empty, all groups will be audited. ", "examples": [["interns", "contractors"]], "items": [{"minLength": 1, "type": "string"}], "title": "watch_list", "type": "array", "_name_": "watch_list", "_required_": false}, "ignore_list": {"default": [], "description": "List of groups that will not be audited. ", "examples": [["automation", "apps"]], "items": [{"minLength": 1, "type": "string"}], "title": "ignore_list", "type": "array", "_name_": "ignore_list", "_required_": false}}, "title": "audit", "type": "object", "examples": [{"enable": true, "ignore_list": [], "watch_list": ["interns"]}, {"enable": true, "ignore_list": ["automation"], "watch_list": []}], "_name_": "audit", "_required_": false, "_attrs_order_": ["enable", "watch_list", "ignore_list"]}, "options": {"anyOf": [{"discriminator": {"mapping": {"DEFAULT_SHARE": "#/$defs/DefaultOpt", "EXTERNAL_SHARE": "#/$defs/ExternalOpt", "FCP_SHARE": "#/$defs/FCPStorageOpt", "LEGACY_SHARE": "#/$defs/LegacyOpt", "MULTIPROTOCOL_SHARE": "#/$defs/MultiprotocolOpt", "PRIVATE_DATASETS_SHARE": "#/$defs/PrivateDatasetOpt", "TIMEMACHINE_SHARE": "#/$defs/TimeMachineOpt", "TIME_LOCKED_SHARE": "#/$defs/TimeLockedOpt", "VEEAM_REPOSITORY_SHARE": "#/$defs/VeeamRepositoryOpt"}, "propertyName": "purpose"}, "oneOf": [{"additionalProperties": false, "description": "These configuration options apply to shares with the `LEGACY_SHARE` purpose. ", "properties": {"purpose": {"const": "LEGACY_SHARE", "enum": ["LEGACY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "recyclebin": {"default": false, "description": "If set, deleted files are moved to per-user subdirectories in the `.recycle` directory. The SMB server creates the `.recycle` directory at the root of the SMB share if the file is in the same ZFS dataset as the share `path`. If the file is in a child ZFS dataset, the server uses the `mountpoint` of that dataset to create the `.recycle` directory.\n\nNOTE: This feature does not work with recycle bin features in client operating systems.\n\nWARNING: Do not use this feature instead of backups or ZFS snapshots. ", "title": "recyclebin", "type": "boolean", "_name_": "recyclebin", "_required_": false}, "path_suffix": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path suffix template for dynamic path generation. Uses SMB variable substitution patterns like `%D` (domain) and `%U` (username).", "examples": ["%D/%U"], "title": "path_suffix", "_name_": "path_suffix", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}, "guestok": {"default": false, "description": "If set, guest access to the share is allowed. This should not be used in production environments.\n\nNOTE: If a user account does not exist, the SMB server maps access to the guest account.\n\nWARNING: Additional client-side configuration downgrading security settings may be required in order to use this feature. ", "title": "guestok", "type": "boolean", "_name_": "guestok", "_required_": false}, "streams": {"default": true, "description": "If set, support for SMB alternate data streams is enabled.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "streams", "type": "boolean", "_name_": "streams", "_required_": false}, "durablehandle": {"default": true, "description": "If set, support for SMB durable handles is enabled.\n\nWARNING: This feature is incompatible with multiprotocol and local filesystem access. ", "title": "durablehandle", "type": "boolean", "_name_": "durablehandle", "_required_": false}, "shadowcopy": {"default": true, "description": "If set, previous versions of files contained in ZFS snapshots are accessible through standard SMB protocol operations on previous versions of files. ", "title": "shadowcopy", "type": "boolean", "_name_": "shadowcopy", "_required_": false}, "fsrvp": {"default": false, "description": "If set, enable support for the File Server Remote VSS Protocol. This allows clients to manage snapshots for the specified SMB share. ", "title": "fsrvp", "type": "boolean", "_name_": "fsrvp", "_required_": false}, "home": {"default": false, "description": "Use the `path` to store user home directories. Each user has a personal home directory and share. Users cannot access other user directories when connecting to shares.\n\nNOTE: This parameter changes the share `name` to `homes`. It also creates a dynamic share that mirrors the username of the user. Both shares use the same `path`. You can hide the homes share by turning off `browsable`. The dynamic user home share cannot be hidden.\n\nWARNING: This parameter changes the global server configuration. The SMB server will not authenticate users without a valid home directory or shell.", "title": "home", "type": "boolean", "_name_": "home", "_required_": false}, "acl": {"default": true, "description": "If set, enable mapping of local filesystem ACLs to NT ACLs for SMB clients. ", "title": "acl", "type": "boolean", "_name_": "acl", "_required_": false}, "afp": {"default": false, "description": "If set, SMB server will read and store file metadata in an on-disk format compatible with the legacy AFP file server.\n\nWARNING: This should not be set unless the SMB server is sharing data that was originally written via the AFP protocol. ", "title": "afp", "type": "boolean", "_name_": "afp", "_required_": false}, "timemachine": {"default": false, "description": "If set, MacOS clients can use the share as a time machine target. ", "title": "timemachine", "type": "boolean", "_name_": "timemachine", "_required_": false}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is applied to the share.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "auxsmbconf": {"default": "", "description": "Additional parameters to set on the SMB share. Parameters must be separated by the new-line character.\n\nWARNING: These parameters are not validated and may cause undefined server behavior including data corruption or data loss.\n\nWARNING: Auxiliary parameters are an unsupported configuration.", "title": "auxsmbconf", "type": "string", "_name_": "auxsmbconf", "_required_": false}}, "required": ["purpose"], "title": "LegacyOpt", "type": "object", "_attrs_order_": ["purpose", "recyclebin", "path_suffix", "hostsallow", "hostsdeny", "guestok", "streams", "durablehandle", "shadowcopy", "fsrvp", "home", "acl", "afp", "timemachine", "timemachine_quota", "aapl_name_mangling", "vuid", "auxsmbconf"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `DEFAULT_SHARE` purpose. ", "properties": {"purpose": {"const": "DEFAULT_SHARE", "enum": ["DEFAULT_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "DefaultOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIMEMACHINE_SHARE` purpose. ", "properties": {"purpose": {"const": "TIMEMACHINE_SHARE", "enum": ["TIMEMACHINE_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "timemachine_quota": {"default": 0, "description": "If set, it defines the maximum size in bytes of a single time machine sparsebundle volume by limiting the reported disk size to the SMB client. A value of zero means no quota is set.\n\nNOTE: Modern MacOS versions you set Time Machine quotas client-side. This gives more predictable server and client behavior.", "maximum": 109951162777600, "minimum": 0, "title": "timemachine_quota", "type": "integer", "_name_": "timemachine_quota", "_required_": false}, "auto_snapshot": {"default": false, "description": "If set, the server makes a ZFS snapshot of the share dataset when the client makes a new Time Machine backup. ", "title": "auto_snapshot", "type": "boolean", "_name_": "auto_snapshot", "_required_": false}, "auto_dataset_creation": {"default": false, "description": "If set, the server uses the `dataset_naming_schema` to make a new ZFS dataset when the client connects. The server uses this dataset as the share path during the SMB session.\n\nNOTE: this setting requires the share path to be a dataset mountpoint.", "title": "auto_dataset_creation", "type": "boolean", "_name_": "auto_dataset_creation", "_required_": false}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use when `auto_dataset_creation` is specified. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username). See the `VARIABLE SUBSTITUTIONS` section in the smb.conf manpage for valid strings.\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules. For example, if `%u` is specified then the character `\\` may be inserted in the username (which is not supported in ZFS).", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "vuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "This value is the Time Machine volume UUID for the SMB share. The TrueNAS server uses this value in the mDNS advertisement for the Time Machine share. MacOS clients may use it to identify the volume. When you create or update a share, setting this value to null makes the TrueNAS server generate a new UUID for the share. ", "examples": ["d12aafdc-a7ac-4e3c-8bbd-6001f7f19819"], "title": "vuid", "_name_": "vuid", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeMachineOpt", "type": "object", "_attrs_order_": ["purpose", "timemachine_quota", "auto_snapshot", "auto_dataset_creation", "dataset_naming_schema", "vuid", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `MULTIPROTOCOL_SHARE` purpose. ", "properties": {"purpose": {"const": "MULTIPROTOCOL_SHARE", "enum": ["MULTIPROTOCOL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "MultiprotocolOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `TIME_LOCKED_SHARE` purpose. ", "properties": {"purpose": {"const": "TIME_LOCKED_SHARE", "enum": ["TIME_LOCKED_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "grace_period": {"default": 900, "description": "Time in seconds when write access to the file or directory is allowed. ", "maximum": 15552000, "minimum": 60, "title": "grace_period", "type": "integer", "_name_": "grace_period", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "TimeLockedOpt", "type": "object", "_attrs_order_": ["purpose", "grace_period", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `PRIVATE_DATASETS_SHARE` purpose. ", "properties": {"purpose": {"const": "PRIVATE_DATASETS_SHARE", "enum": ["PRIVATE_DATASETS_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "dataset_naming_schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "The naming schema to use. If you do not set a schema, the server uses `%U` (username) if it is not joined to Active Directory. If the server is joined to Active Directory it uses `%D/%U` (domain/username).\n\nWARNING: ZFS dataset naming rules are more restrictive than normal path rules.", "examples": ["%D/%U"], "title": "dataset_naming_schema", "_name_": "dataset_naming_schema", "_required_": false}, "auto_quota": {"default": 0, "description": "Set the specified ZFS quota (in gibibytes) on new datasets. If the value is zero, TrueNAS disables automatic quotas for the share.", "examples": [10], "minimum": 0, "title": "auto_quota", "type": "integer", "_name_": "auto_quota", "_required_": false}, "aapl_name_mangling": {"default": false, "description": "If set, illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients.\n\nWARNING: This value should not be changed once data is written to the SMB share. ", "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "PrivateDatasetOpt", "type": "object", "_attrs_order_": ["purpose", "dataset_naming_schema", "auto_quota", "aapl_name_mangling", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `EXTERNAL_SHARE` purpose. ", "properties": {"purpose": {"const": "EXTERNAL_SHARE", "enum": ["EXTERNAL_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "remote_path": {"description": "This is the path to the external server and share. Each server entry must include a full domain name or IP address and share name. Separate the server and share with the `\\` character.\n\nWARNING: The SMB server and TrueNAS middleware do not check if external paths are reachable. ", "examples": [["192.168.0.200\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE"], ["SERVER1.MYDOM.INTERNAL\\SHARE, SERVER2.MYDOM.INTERNAL\\SHARE"]], "items": [{"minLength": 1, "type": "string"}], "title": "remote_path", "type": "array", "_name_": "remote_path", "_required_": true}}, "required": ["purpose", "remote_path"], "title": "ExternalOpt", "type": "object", "_attrs_order_": ["purpose", "remote_path"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `VEEAM_REPOSITORY_SHARE` purpose. ", "properties": {"purpose": {"const": "VEEAM_REPOSITORY_SHARE", "enum": ["VEEAM_REPOSITORY_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "VeeamRepositoryOpt", "type": "object", "_attrs_order_": ["purpose", "hostsallow", "hostsdeny"]}, {"additionalProperties": false, "description": "These configuration options apply to shares with the `FCP_SHARE` purpose as a storage location for Final Cut Pro data. ", "properties": {"purpose": {"const": "FCP_SHARE", "enum": ["FCP_SHARE"], "title": "purpose", "type": "string", "_name_": "purpose", "_required_": true}, "aapl_name_mangling": {"const": true, "default": true, "description": "Illegal NTFS characters commonly used by MacOS clients are stored with their native values on the SMB server's local filesystem.\n\nNOTE: Files with illegal NTFS characters in their names may not be accessible to non-MacOS SMB clients. ", "enum": [true], "title": "aapl_name_mangling", "type": "boolean", "_name_": "aapl_name_mangling", "_required_": false}, "hostsallow": {"default": [], "description": "A list of IP addresses or subnets that are allowed to access the SMB share. The EXCEPT keyword may be used to limit a wildcard list.\n\nNOTE: Hostname lookups are disabled on the SMB server for performance reasons. ", "examples": [["192.168.0.200", "150.203."], ["150.203.15.0/255.255.255.0"], ["150.203. EXCEPT 150.203.6.66"]], "items": [{"type": "string"}], "title": "hostsallow", "type": "array", "_name_": "hostsallow", "_required_": false}, "hostsdeny": {"default": [], "description": "A list of IP addresses or subnets that are not allowed to access the SMB share. The keyword `ALL` or the netmask `0.0.0.0/0` may be used to deny all by default. ", "examples": [["150.203.4."], ["ALL"], ["0.0.0.0/0"]], "items": [{"type": "string"}], "title": "hostsdeny", "type": "array", "_name_": "hostsdeny", "_required_": false}}, "required": ["purpose"], "title": "FCPStorageOpt", "type": "object", "_attrs_order_": ["purpose", "aapl_name_mangling", "hostsallow", "hostsdeny"]}]}, {"type": "null"}], "default": null, "description": "Additional configuration related to the configured SMB share purpose. If null, then the default options related to the share purpose will be applied. ", "examples": [{"auto_snapshot": true}, {"auto_quota": 100}], "title": "options", "_name_": "options", "_required_": false}}, "required": ["id", "name", "path", "locked"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "purpose", "name", "path", "enabled", "comment", "readonly", "browsable", "access_based_share_enumeration", "locked", "audit", "options"]}]}, "smb.bindip_choices": {"description": "List of valid choices for IP addresses to which to bind the SMB service.\nAddresses assigned by DHCP are excluded from the results.", "cli_description": "List of valid choices for IP addresses to which to bind the SMB service", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Available IP addresses that the SMB service can bind to.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "smb.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "description": "TrueNAS SMB server configuration. ", "properties": {"id": {"description": "Unique identifier for the SMB service configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "netbiosname": {"description": "The NetBIOS name of this server. ", "title": "netbiosname", "type": "string", "_name_": "netbiosname", "_required_": true}, "netbiosalias": {"description": "Alternative netbios names of the TrueNAS server. These names are announced through NetBIOS name server and registered in Active Directory when TrueNAS joins the domain.", "items": [{"type": "string"}], "title": "netbiosalias", "type": "array", "_name_": "netbiosalias", "_required_": true}, "workgroup": {"description": "Workgroup name. When TrueNAS joins active directory, it automatically changes this value to match the NetBIOS domain of the Active Directory domain. ", "title": "workgroup", "type": "string", "_name_": "workgroup", "_required_": true}, "description": {"description": "Description of the SMB server. SMB clients may see this description during some operations. ", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "enable_smb1": {"description": "Enable SMB1 support on the server. WARNING: using the SMB1 protocol is not recommended. ", "title": "enable_smb1", "type": "boolean", "_name_": "enable_smb1", "_required_": true}, "unixcharset": {"description": "Select character set for file names on local filesystem. Use this option only if you know the names are not UTF-8. ", "enum": ["UTF-8", "GB2312", "HZ-GB-2312", "CP1361", "BIG5", "BIG5HKSCS", "CP037", "CP273", "CP424", "CP437", "CP500", "CP775", "CP850", "CP852", "CP855", "CP857", "CP858", "CP860", "CP861", "CP862", "CP863", "CP864", "CP865", "CP866", "CP869", "CP932", "CP949", "CP950", "CP1026", "CP1125", "CP1140", "CP1250", "CP1251", "CP1252", "CP1253", "CP1254", "CP1255", "CP1256", "CP1257", "CP1258", "EUC_JIS_2004", "EUC_JISX0213", "EUC_JP", "EUC_KR", "GB18030", "GBK", "HZ", "ISO2022_JP", "ISO2022_JP_1", "ISO2022_JP_2", "ISO2022_JP_2004", "ISO2022_JP_3", "ISO2022_JP_EXT", "ISO2022_KR", "ISO8859_1", "ISO8859_2", "ISO8859_3", "ISO8859_4", "ISO8859_5", "ISO8859_6", "ISO8859_7", "ISO8859_8", "ISO8859_9", "ISO8859_10", "ISO8859_11", "ISO8859_13", "ISO8859_14", "ISO8859_15", "ISO8859_16", "JOHAB", "KOI8_R", "KZ1048", "LATIN_1", "MAC_CYRILLIC", "MAC_GREEK", "MAC_ICELAND", "MAC_LATIN2", "MAC_ROMAN", "MAC_TURKISH", "PTCP154", "SHIFT_JIS", "SHIFT_JIS_2004", "SHIFT_JISX0213", "TIS_620", "UTF_16", "UTF_16_BE", "UTF_16_LE"], "title": "unixcharset", "type": "string", "_name_": "unixcharset", "_required_": true}, "localmaster": {"description": "When set to `true` the NetBIOS name server in TrueNAS participates in elections for the local master browser.\nWhen set to `false` the NetBIOS name server does not attempt to become a local master browser on a subnet and loses all browsing elections.\n\nNOTE: This parameter has no effect if the NetBIOS name server is disabled. ", "title": "localmaster", "type": "boolean", "_name_": "localmaster", "_required_": true}, "syslog": {"description": "Send log messages to syslog. Enable this option if you want SMB server error logs to be included in information sent to a remote syslog server. NOTE: This requires that remote syslog is globally configured on TrueNAS. ", "title": "syslog", "type": "boolean", "_name_": "syslog", "_required_": true}, "aapl_extensions": {"description": "Enable support for SMB2/3 AAPL protocol extensions. This setting makes the TrueNAS server advertise support for Apple protocol extensions as a MacOS server. Enabling this is required for Time Machine support. ", "title": "aapl_extensions", "type": "boolean", "_name_": "aapl_extensions", "_required_": true}, "admin_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The selected group has full administrator privileges on TrueNAS via the SMB protocol. ", "title": "admin_group", "_name_": "admin_group", "_required_": true}, "guest": {"description": "SMB guest account username. This username provides access to legacy SMB shares with guest access enabled. It must be a valid, existing local user account. ", "minLength": 1, "title": "guest", "type": "string", "_name_": "guest", "_required_": true}, "filemask": {"anyOf": [{"type": "string"}, {"const": "DEFAULT", "enum": ["DEFAULT"], "type": "string"}], "description": "`smb.conf` create mask. DEFAULT applies current server default which is 664. ", "title": "filemask", "_name_": "filemask", "_required_": true}, "dirmask": {"anyOf": [{"type": "string"}, {"const": "DEFAULT", "enum": ["DEFAULT"], "type": "string"}], "description": "`smb.conf` directory mask. DEFAULT applies current server default which is 775. ", "title": "dirmask", "_name_": "dirmask", "_required_": true}, "ntlmv1_auth": {"description": "Enable legacy and very insecure NTLMv1 authentication. This should never be done except in extreme edge cases and may be against regulations in non-home environments. ", "title": "ntlmv1_auth", "type": "boolean", "_name_": "ntlmv1_auth", "_required_": true}, "multichannel": {"description": "Enable SMB3 multi-channel support. ", "title": "multichannel", "type": "boolean", "_name_": "multichannel", "_required_": true}, "encryption": {"description": "SMB2/3 transport encryption setting for the TrueNAS SMB server.\n\n* `NEGOTIATE`: Enable negotiation of data encryption. Encrypt data only if the client explicitly requests it.\n* `DESIRED`: Enable negotiation of data encryption. Encrypt data on sessions and share connections for clients that support it.\n* `REQUIRED`: Require data encryption for sessions and share connections.\n NOTE: Clients that do not support encryption cannot access SMB shares.\n* `DEFAULT`: Use the TrueNAS SMB server default encryption settings. Currently, this is the same as `NEGOTIATE`.", "enum": ["DEFAULT", "NEGOTIATE", "DESIRED", "REQUIRED"], "title": "encryption", "type": "string", "_name_": "encryption", "_required_": true}, "bindip": {"description": "List of IP addresses used by the TrueNAS SMB server. ", "items": [{"format": "ipvanyinterface", "type": "string"}], "title": "bindip", "type": "array", "_name_": "bindip", "_required_": true}, "server_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The unique identifier for the TrueNAS SMB server. It also serves as the domain SID for all local SMB user and group accounts. ", "title": "server_sid", "_name_": "server_sid", "_required_": true}, "smb_options": {"description": "Additional unvalidated and unsupported configuration options for the SMB server.\nWARNING: Using `smb_options` may produce unexpected server behavior. ", "title": "smb_options", "type": "string", "_name_": "smb_options", "_required_": true}, "debug": {"description": "Set SMB log levels to debug. Use this setting only when troubleshooting a specific SMB issue. Do not use it in production environments. ", "title": "debug", "type": "boolean", "_name_": "debug", "_required_": true}}, "required": ["id", "netbiosname", "netbiosalias", "workgroup", "description", "enable_smb1", "unixcharset", "localmaster", "syslog", "aapl_extensions", "admin_group", "guest", "filemask", "dirmask", "ntlmv1_auth", "multichannel", "encryption", "bindip", "server_sid", "smb_options", "debug"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "netbiosname", "netbiosalias", "workgroup", "description", "enable_smb1", "unixcharset", "localmaster", "syslog", "aapl_extensions", "admin_group", "guest", "filemask", "dirmask", "ntlmv1_auth", "multichannel", "encryption", "bindip", "server_sid", "smb_options", "debug"]}]}, "smb.unixcharset_choices": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SHARING_READ", "SHARING_SMB_READ", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"enum": ["UTF-8", "GB2312", "HZ-GB-2312", "CP1361", "BIG5", "BIG5HKSCS", "CP037", "CP273", "CP424", "CP437", "CP500", "CP775", "CP850", "CP852", "CP855", "CP857", "CP858", "CP860", "CP861", "CP862", "CP863", "CP864", "CP865", "CP866", "CP869", "CP932", "CP949", "CP950", "CP1026", "CP1125", "CP1140", "CP1250", "CP1251", "CP1252", "CP1253", "CP1254", "CP1255", "CP1256", "CP1257", "CP1258", "EUC_JIS_2004", "EUC_JISX0213", "EUC_JP", "EUC_KR", "GB18030", "GBK", "HZ", "ISO2022_JP", "ISO2022_JP_1", "ISO2022_JP_2", "ISO2022_JP_2004", "ISO2022_JP_3", "ISO2022_JP_EXT", "ISO2022_KR", "ISO8859_1", "ISO8859_2", "ISO8859_3", "ISO8859_4", "ISO8859_5", "ISO8859_6", "ISO8859_7", "ISO8859_8", "ISO8859_9", "ISO8859_10", "ISO8859_11", "ISO8859_13", "ISO8859_14", "ISO8859_15", "ISO8859_16", "JOHAB", "KOI8_R", "KZ1048", "LATIN_1", "MAC_CYRILLIC", "MAC_GREEK", "MAC_ICELAND", "MAC_LATIN2", "MAC_ROMAN", "MAC_TURKISH", "PTCP154", "SHIFT_JIS", "SHIFT_JIS_2004", "SHIFT_JISX0213", "TIS_620", "UTF_16", "UTF_16_BE", "UTF_16_LE"], "type": "string"}, "description": "Available character set choices for Unix charset configuration.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "smb.update": {"description": "Update SMB Service Configuration.\n\n`netbiosname` defaults to the original hostname of the system.\n\n`netbiosalias` a list of netbios aliases. If Server is joined to an AD domain, additional Kerberos\nService Principal Names will be generated for these aliases.\n\n`workgroup` specifies the NetBIOS workgroup to which the TrueNAS server belongs. This will be\nautomatically set to the correct value during the process of joining an AD domain.\nNOTE: `workgroup` and `netbiosname` should have different values.\n\n`enable_smb1` allows legacy SMB clients to connect to the server when enabled.\n\n`aapl_extensions` enables support for SMB2 protocol extensions for MacOS clients. This is not a\nrequirement for MacOS support, but is currently a requirement for time machine support.\n\n`localmaster` when set, determines if the system participates in a browser election.\n\n`guest` attribute is specified to select the account to be used for guest access. It defaults to \"nobody\".\n\nThe group specified as the SMB `admin_group` will be automatically added as a foreign group member\nof S-1-5-32-544 (builtin\\admins). This will afford the group all privileges granted to a local admin.\nAny SMB group may be selected (including AD groups).\n\n`ntlmv1_auth` enables a legacy and insecure authentication method, which may be required for legacy or\npoorly-implemented SMB clients.\n\n`encryption` set global server behavior with regard to SMB encrpytion. Options are DEFAULT (which\nfollows the upstream defaults -- currently identical to NEGOTIATE), NEGOTIATE encrypts SMB transport\nonly if requested by the SMB client, DESIRED encrypts SMB transport if supported by the SMB client,\nREQUIRED only allows encrypted transport to the SMB server. Mandatory SMB encryption is not\ncompatible with SMB1 server support in TrueNAS.\n\n`smb_options` smb.conf parameters that are not covered by the above supported configuration options may be\nadded as an smb_option. Not all options are tested or supported, and behavior of smb_options may change\nbetween releases. Stability of smb.conf options is not guaranteed.", "cli_description": "Update SMB Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SHARING_ADMIN", "SHARING_SMB_WRITE", "SHARING_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"netbiosname": {"description": "The NetBIOS name of this server. ", "title": "netbiosname", "type": "string", "_name_": "netbiosname", "_required_": false}, "netbiosalias": {"description": "Alternative netbios names of the TrueNAS server. These names are announced through NetBIOS name server and registered in Active Directory when TrueNAS joins the domain.", "items": [{"type": "string"}], "title": "netbiosalias", "type": "array", "_name_": "netbiosalias", "_required_": false}, "workgroup": {"description": "Workgroup name. When TrueNAS joins active directory, it automatically changes this value to match the NetBIOS domain of the Active Directory domain. ", "title": "workgroup", "type": "string", "_name_": "workgroup", "_required_": false}, "description": {"description": "Description of the SMB server. SMB clients may see this description during some operations. ", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "enable_smb1": {"description": "Enable SMB1 support on the server. WARNING: using the SMB1 protocol is not recommended. ", "title": "enable_smb1", "type": "boolean", "_name_": "enable_smb1", "_required_": false}, "unixcharset": {"description": "Select character set for file names on local filesystem. Use this option only if you know the names are not UTF-8. ", "enum": ["UTF-8", "GB2312", "HZ-GB-2312", "CP1361", "BIG5", "BIG5HKSCS", "CP037", "CP273", "CP424", "CP437", "CP500", "CP775", "CP850", "CP852", "CP855", "CP857", "CP858", "CP860", "CP861", "CP862", "CP863", "CP864", "CP865", "CP866", "CP869", "CP932", "CP949", "CP950", "CP1026", "CP1125", "CP1140", "CP1250", "CP1251", "CP1252", "CP1253", "CP1254", "CP1255", "CP1256", "CP1257", "CP1258", "EUC_JIS_2004", "EUC_JISX0213", "EUC_JP", "EUC_KR", "GB18030", "GBK", "HZ", "ISO2022_JP", "ISO2022_JP_1", "ISO2022_JP_2", "ISO2022_JP_2004", "ISO2022_JP_3", "ISO2022_JP_EXT", "ISO2022_KR", "ISO8859_1", "ISO8859_2", "ISO8859_3", "ISO8859_4", "ISO8859_5", "ISO8859_6", "ISO8859_7", "ISO8859_8", "ISO8859_9", "ISO8859_10", "ISO8859_11", "ISO8859_13", "ISO8859_14", "ISO8859_15", "ISO8859_16", "JOHAB", "KOI8_R", "KZ1048", "LATIN_1", "MAC_CYRILLIC", "MAC_GREEK", "MAC_ICELAND", "MAC_LATIN2", "MAC_ROMAN", "MAC_TURKISH", "PTCP154", "SHIFT_JIS", "SHIFT_JIS_2004", "SHIFT_JISX0213", "TIS_620", "UTF_16", "UTF_16_BE", "UTF_16_LE"], "title": "unixcharset", "type": "string", "_name_": "unixcharset", "_required_": false}, "localmaster": {"description": "When set to `true` the NetBIOS name server in TrueNAS participates in elections for the local master browser.\nWhen set to `false` the NetBIOS name server does not attempt to become a local master browser on a subnet and loses all browsing elections.\n\nNOTE: This parameter has no effect if the NetBIOS name server is disabled. ", "title": "localmaster", "type": "boolean", "_name_": "localmaster", "_required_": false}, "syslog": {"description": "Send log messages to syslog. Enable this option if you want SMB server error logs to be included in information sent to a remote syslog server. NOTE: This requires that remote syslog is globally configured on TrueNAS. ", "title": "syslog", "type": "boolean", "_name_": "syslog", "_required_": false}, "aapl_extensions": {"description": "Enable support for SMB2/3 AAPL protocol extensions. This setting makes the TrueNAS server advertise support for Apple protocol extensions as a MacOS server. Enabling this is required for Time Machine support. ", "title": "aapl_extensions", "type": "boolean", "_name_": "aapl_extensions", "_required_": false}, "admin_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The selected group has full administrator privileges on TrueNAS via the SMB protocol. ", "title": "admin_group", "_name_": "admin_group", "_required_": false}, "guest": {"description": "SMB guest account username. This username provides access to legacy SMB shares with guest access enabled. It must be a valid, existing local user account. ", "minLength": 1, "title": "guest", "type": "string", "_name_": "guest", "_required_": false}, "filemask": {"anyOf": [{"type": "string"}, {"const": "DEFAULT", "enum": ["DEFAULT"], "type": "string"}], "description": "`smb.conf` create mask. DEFAULT applies current server default which is 664. ", "title": "filemask", "_name_": "filemask", "_required_": false}, "dirmask": {"anyOf": [{"type": "string"}, {"const": "DEFAULT", "enum": ["DEFAULT"], "type": "string"}], "description": "`smb.conf` directory mask. DEFAULT applies current server default which is 775. ", "title": "dirmask", "_name_": "dirmask", "_required_": false}, "ntlmv1_auth": {"description": "Enable legacy and very insecure NTLMv1 authentication. This should never be done except in extreme edge cases and may be against regulations in non-home environments. ", "title": "ntlmv1_auth", "type": "boolean", "_name_": "ntlmv1_auth", "_required_": false}, "multichannel": {"description": "Enable SMB3 multi-channel support. ", "title": "multichannel", "type": "boolean", "_name_": "multichannel", "_required_": false}, "encryption": {"description": "SMB2/3 transport encryption setting for the TrueNAS SMB server.\n\n* `NEGOTIATE`: Enable negotiation of data encryption. Encrypt data only if the client explicitly requests it.\n* `DESIRED`: Enable negotiation of data encryption. Encrypt data on sessions and share connections for clients that support it.\n* `REQUIRED`: Require data encryption for sessions and share connections.\n NOTE: Clients that do not support encryption cannot access SMB shares.\n* `DEFAULT`: Use the TrueNAS SMB server default encryption settings. Currently, this is the same as `NEGOTIATE`.", "enum": ["DEFAULT", "NEGOTIATE", "DESIRED", "REQUIRED"], "title": "encryption", "type": "string", "_name_": "encryption", "_required_": false}, "bindip": {"description": "List of IP addresses used by the TrueNAS SMB server. ", "items": [{"format": "ipvanyinterface", "type": "string"}], "title": "bindip", "type": "array", "_name_": "bindip", "_required_": false}, "server_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The unique identifier for the TrueNAS SMB server. It also serves as the domain SID for all local SMB user and group accounts. ", "title": "server_sid", "_name_": "server_sid", "_required_": false}, "smb_options": {"description": "Additional unvalidated and unsupported configuration options for the SMB server.\nWARNING: Using `smb_options` may produce unexpected server behavior. ", "title": "smb_options", "type": "string", "_name_": "smb_options", "_required_": false}, "debug": {"description": "Set SMB log levels to debug. Use this setting only when troubleshooting a specific SMB issue. Do not use it in production environments. ", "title": "debug", "type": "boolean", "_name_": "debug", "_required_": false}}, "title": "smb_update", "type": "object", "description": "SMBUpdateArgs parameters.", "_name_": "smb_update", "_required_": true, "_attrs_order_": ["netbiosname", "netbiosalias", "workgroup", "description", "enable_smb1", "unixcharset", "localmaster", "syslog", "aapl_extensions", "admin_group", "guest", "filemask", "dirmask", "ntlmv1_auth", "multichannel", "encryption", "bindip", "server_sid", "smb_options", "debug"]}], "returns": [{"additionalProperties": false, "description": "The updated SMB service configuration.", "properties": {"id": {"description": "Unique identifier for the SMB service configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "netbiosname": {"description": "The NetBIOS name of this server. ", "title": "netbiosname", "type": "string", "_name_": "netbiosname", "_required_": true}, "netbiosalias": {"description": "Alternative netbios names of the TrueNAS server. These names are announced through NetBIOS name server and registered in Active Directory when TrueNAS joins the domain.", "items": [{"type": "string"}], "title": "netbiosalias", "type": "array", "_name_": "netbiosalias", "_required_": true}, "workgroup": {"description": "Workgroup name. When TrueNAS joins active directory, it automatically changes this value to match the NetBIOS domain of the Active Directory domain. ", "title": "workgroup", "type": "string", "_name_": "workgroup", "_required_": true}, "description": {"description": "Description of the SMB server. SMB clients may see this description during some operations. ", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "enable_smb1": {"description": "Enable SMB1 support on the server. WARNING: using the SMB1 protocol is not recommended. ", "title": "enable_smb1", "type": "boolean", "_name_": "enable_smb1", "_required_": true}, "unixcharset": {"description": "Select character set for file names on local filesystem. Use this option only if you know the names are not UTF-8. ", "enum": ["UTF-8", "GB2312", "HZ-GB-2312", "CP1361", "BIG5", "BIG5HKSCS", "CP037", "CP273", "CP424", "CP437", "CP500", "CP775", "CP850", "CP852", "CP855", "CP857", "CP858", "CP860", "CP861", "CP862", "CP863", "CP864", "CP865", "CP866", "CP869", "CP932", "CP949", "CP950", "CP1026", "CP1125", "CP1140", "CP1250", "CP1251", "CP1252", "CP1253", "CP1254", "CP1255", "CP1256", "CP1257", "CP1258", "EUC_JIS_2004", "EUC_JISX0213", "EUC_JP", "EUC_KR", "GB18030", "GBK", "HZ", "ISO2022_JP", "ISO2022_JP_1", "ISO2022_JP_2", "ISO2022_JP_2004", "ISO2022_JP_3", "ISO2022_JP_EXT", "ISO2022_KR", "ISO8859_1", "ISO8859_2", "ISO8859_3", "ISO8859_4", "ISO8859_5", "ISO8859_6", "ISO8859_7", "ISO8859_8", "ISO8859_9", "ISO8859_10", "ISO8859_11", "ISO8859_13", "ISO8859_14", "ISO8859_15", "ISO8859_16", "JOHAB", "KOI8_R", "KZ1048", "LATIN_1", "MAC_CYRILLIC", "MAC_GREEK", "MAC_ICELAND", "MAC_LATIN2", "MAC_ROMAN", "MAC_TURKISH", "PTCP154", "SHIFT_JIS", "SHIFT_JIS_2004", "SHIFT_JISX0213", "TIS_620", "UTF_16", "UTF_16_BE", "UTF_16_LE"], "title": "unixcharset", "type": "string", "_name_": "unixcharset", "_required_": true}, "localmaster": {"description": "When set to `true` the NetBIOS name server in TrueNAS participates in elections for the local master browser.\nWhen set to `false` the NetBIOS name server does not attempt to become a local master browser on a subnet and loses all browsing elections.\n\nNOTE: This parameter has no effect if the NetBIOS name server is disabled. ", "title": "localmaster", "type": "boolean", "_name_": "localmaster", "_required_": true}, "syslog": {"description": "Send log messages to syslog. Enable this option if you want SMB server error logs to be included in information sent to a remote syslog server. NOTE: This requires that remote syslog is globally configured on TrueNAS. ", "title": "syslog", "type": "boolean", "_name_": "syslog", "_required_": true}, "aapl_extensions": {"description": "Enable support for SMB2/3 AAPL protocol extensions. This setting makes the TrueNAS server advertise support for Apple protocol extensions as a MacOS server. Enabling this is required for Time Machine support. ", "title": "aapl_extensions", "type": "boolean", "_name_": "aapl_extensions", "_required_": true}, "admin_group": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The selected group has full administrator privileges on TrueNAS via the SMB protocol. ", "title": "admin_group", "_name_": "admin_group", "_required_": true}, "guest": {"description": "SMB guest account username. This username provides access to legacy SMB shares with guest access enabled. It must be a valid, existing local user account. ", "minLength": 1, "title": "guest", "type": "string", "_name_": "guest", "_required_": true}, "filemask": {"anyOf": [{"type": "string"}, {"const": "DEFAULT", "enum": ["DEFAULT"], "type": "string"}], "description": "`smb.conf` create mask. DEFAULT applies current server default which is 664. ", "title": "filemask", "_name_": "filemask", "_required_": true}, "dirmask": {"anyOf": [{"type": "string"}, {"const": "DEFAULT", "enum": ["DEFAULT"], "type": "string"}], "description": "`smb.conf` directory mask. DEFAULT applies current server default which is 775. ", "title": "dirmask", "_name_": "dirmask", "_required_": true}, "ntlmv1_auth": {"description": "Enable legacy and very insecure NTLMv1 authentication. This should never be done except in extreme edge cases and may be against regulations in non-home environments. ", "title": "ntlmv1_auth", "type": "boolean", "_name_": "ntlmv1_auth", "_required_": true}, "multichannel": {"description": "Enable SMB3 multi-channel support. ", "title": "multichannel", "type": "boolean", "_name_": "multichannel", "_required_": true}, "encryption": {"description": "SMB2/3 transport encryption setting for the TrueNAS SMB server.\n\n* `NEGOTIATE`: Enable negotiation of data encryption. Encrypt data only if the client explicitly requests it.\n* `DESIRED`: Enable negotiation of data encryption. Encrypt data on sessions and share connections for clients that support it.\n* `REQUIRED`: Require data encryption for sessions and share connections.\n NOTE: Clients that do not support encryption cannot access SMB shares.\n* `DEFAULT`: Use the TrueNAS SMB server default encryption settings. Currently, this is the same as `NEGOTIATE`.", "enum": ["DEFAULT", "NEGOTIATE", "DESIRED", "REQUIRED"], "title": "encryption", "type": "string", "_name_": "encryption", "_required_": true}, "bindip": {"description": "List of IP addresses used by the TrueNAS SMB server. ", "items": [{"format": "ipvanyinterface", "type": "string"}], "title": "bindip", "type": "array", "_name_": "bindip", "_required_": true}, "server_sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The unique identifier for the TrueNAS SMB server. It also serves as the domain SID for all local SMB user and group accounts. ", "title": "server_sid", "_name_": "server_sid", "_required_": true}, "smb_options": {"description": "Additional unvalidated and unsupported configuration options for the SMB server.\nWARNING: Using `smb_options` may produce unexpected server behavior. ", "title": "smb_options", "type": "string", "_name_": "smb_options", "_required_": true}, "debug": {"description": "Set SMB log levels to debug. Use this setting only when troubleshooting a specific SMB issue. Do not use it in production environments. ", "title": "debug", "type": "boolean", "_name_": "debug", "_required_": true}}, "required": ["id", "netbiosname", "netbiosalias", "workgroup", "description", "enable_smb1", "unixcharset", "localmaster", "syslog", "aapl_extensions", "admin_group", "guest", "filemask", "dirmask", "ntlmv1_auth", "multichannel", "encryption", "bindip", "server_sid", "smb_options", "debug"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "netbiosname", "netbiosalias", "workgroup", "description", "enable_smb1", "unixcharset", "localmaster", "syslog", "aapl_extensions", "admin_group", "guest", "filemask", "dirmask", "ntlmv1_auth", "multichannel", "encryption", "bindip", "server_sid", "smb_options", "debug"]}]}, "snmp.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"location": {"description": "A comment describing the physical location of the server.", "title": "location", "type": "string", "_name_": "location", "_required_": true}, "contact": {"anyOf": [{"format": "email", "type": "string"}, {"pattern": "^[-_a-zA-Z0-9\\s]*$", "type": "string"}], "description": "Contact information for the system administrator (email or name).", "title": "contact", "_name_": "contact", "_required_": true}, "traps": {"description": "Whether SNMP traps are enabled.", "title": "traps", "type": "boolean", "_name_": "traps", "_required_": true}, "v3": {"description": "Whether SNMP version 3 is enabled. Enabling version 3 also requires username, authtype and password REDACTED, "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"default": "public", "description": "SNMP community string for v1/v2c access. Allows letters and numbers: a-zA-Z0-9 special characters: !$%&()+-_={}[]<>,.? and spaces. Notable excluded characters: # / \\ @", "pattern": "^[!\\$%&()\\+\\-_={}\\[\\]<>,\\.\\?a-zA-Z0-9\\s]*$", "title": "community", "type": "string", "_name_": "community", "_required_": false}, "v3_username": {"description": "Username for SNMP version 3 authentication.", "maxLength": 20, "title": "v3_username", "type": "string", "_name_": "v3_username", "_required_": true}, "v3_authtype": {"description": "Authentication type for SNMP version 3 (empty string means no authentication).", "enum": ["", "MD5", "SHA"], "title": "v3_authtype", "type": "string", "_name_": "v3_authtype", "_required_": true}, "v3_password REDACTED, "title": "v3_password REDACTED, "type": "string", "_name_": "v3_password REDACTED, "_required_": true}, "v3_privproto": {"anyOf": [{"enum": [null, "AES", "DES"]}, {"type": "null"}], "description": "Privacy protocol for SNMP version 3 encryption. `null` means no encryption. If set, ['AES'|'DES'], a `privpassphrase` must be supplied.", "title": "v3_privproto", "_name_": "v3_privproto", "_required_": true}, "v3_privpassphrase": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Privacy passphrase for SNMP version 3 encryption. This field is required when `privproto` is set.", "title": "v3_privpassphrase", "_name_": "v3_privpassphrase", "_required_": false}, "loglevel": {"description": "Logging level for SNMP daemon (0=emergency to 7=debug).", "maximum": 7, "minimum": 0, "title": "loglevel", "type": "integer", "_name_": "loglevel", "_required_": true}, "options": {"description": "Additional SNMP daemon configuration options. Manual settings should be used with caution as they may render the SNMP service non-functional.", "title": "options", "type": "string", "_name_": "options", "_required_": true}, "zilstat": {"description": "Whether to enable ZFS dataset statistics collection for SNMP.", "title": "zilstat", "type": "boolean", "_name_": "zilstat", "_required_": true}, "id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["location", "contact", "traps", "v3", "v3_username", "v3_authtype", "v3_password REDACTED, "v3_privproto", "loglevel", "options", "zilstat", "id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["location", "contact", "traps", "v3", "community", "v3_username", "v3_authtype", "v3_password REDACTED, "v3_privproto", "v3_privpassphrase", "loglevel", "options", "zilstat", "id"]}]}, "snmp.update": {"description": "Update SNMP Service Configuration.\n\n--- Rules ---\nEnabling v3:\n requires v3_username, v3_authtype and v3_password REDACTED,\n but remove the entry in the public config to block v3 access by that user.\nDisabling v3 and clearing the v3_username:\n This will do the actions described in 'Disabling v3' and take the extra step to\n remove the user from the 'private' config.\n\nThe 'v3_*' settings are valid and enforced only when 'v3' is enabled", "cli_description": "Update SNMP Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_GENERAL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"location": {"description": "A comment describing the physical location of the server.", "title": "location", "type": "string", "_name_": "location", "_required_": false}, "contact": {"anyOf": [{"format": "email", "type": "string"}, {"pattern": "^[-_a-zA-Z0-9\\s]*$", "type": "string"}], "description": "Contact information for the system administrator (email or name).", "title": "contact", "_name_": "contact", "_required_": false}, "traps": {"description": "Whether SNMP traps are enabled.", "title": "traps", "type": "boolean", "_name_": "traps", "_required_": false}, "v3": {"description": "Whether SNMP version 3 is enabled. Enabling version 3 also requires username, authtype and password REDACTED, "title": "v3", "type": "boolean", "_name_": "v3", "_required_": false}, "community": {"description": "SNMP community string for v1/v2c access. Allows letters and numbers: a-zA-Z0-9 special characters: !$%&()+-_={}[]<>,.? and spaces. Notable excluded characters: # / \\ @", "pattern": "^[!\\$%&()\\+\\-_={}\\[\\]<>,\\.\\?a-zA-Z0-9\\s]*$", "title": "community", "type": "string", "_name_": "community", "_required_": false}, "v3_username": {"description": "Username for SNMP version 3 authentication.", "maxLength": 20, "title": "v3_username", "type": "string", "_name_": "v3_username", "_required_": false}, "v3_authtype": {"description": "Authentication type for SNMP version 3 (empty string means no authentication).", "enum": ["", "MD5", "SHA"], "title": "v3_authtype", "type": "string", "_name_": "v3_authtype", "_required_": false}, "v3_password REDACTED, "title": "v3_password REDACTED, "type": "string", "_name_": "v3_password REDACTED, "_required_": false}, "v3_privproto": {"anyOf": [{"enum": [null, "AES", "DES"]}, {"type": "null"}], "description": "Privacy protocol for SNMP version 3 encryption. `null` means no encryption. If set, ['AES'|'DES'], a `privpassphrase` must be supplied.", "title": "v3_privproto", "_name_": "v3_privproto", "_required_": false}, "v3_privpassphrase": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Privacy passphrase for SNMP version 3 encryption. This field is required when `privproto` is set.", "title": "v3_privpassphrase", "_name_": "v3_privpassphrase", "_required_": false}, "loglevel": {"description": "Logging level for SNMP daemon (0=emergency to 7=debug).", "maximum": 7, "minimum": 0, "title": "loglevel", "type": "integer", "_name_": "loglevel", "_required_": false}, "options": {"description": "Additional SNMP daemon configuration options. Manual settings should be used with caution as they may render the SNMP service non-functional.", "title": "options", "type": "string", "_name_": "options", "_required_": false}, "zilstat": {"description": "Whether to enable ZFS dataset statistics collection for SNMP.", "title": "zilstat", "type": "boolean", "_name_": "zilstat", "_required_": false}}, "title": "snmp_update", "type": "object", "description": "SNMPUpdateArgs parameters.", "_name_": "snmp_update", "_required_": true, "_attrs_order_": ["location", "contact", "traps", "v3", "community", "v3_username", "v3_authtype", "v3_password REDACTED, "v3_privproto", "v3_privpassphrase", "loglevel", "options", "zilstat"]}], "returns": [{"additionalProperties": false, "properties": {"location": {"description": "A comment describing the physical location of the server.", "title": "location", "type": "string", "_name_": "location", "_required_": true}, "contact": {"anyOf": [{"format": "email", "type": "string"}, {"pattern": "^[-_a-zA-Z0-9\\s]*$", "type": "string"}], "description": "Contact information for the system administrator (email or name).", "title": "contact", "_name_": "contact", "_required_": true}, "traps": {"description": "Whether SNMP traps are enabled.", "title": "traps", "type": "boolean", "_name_": "traps", "_required_": true}, "v3": {"description": "Whether SNMP version 3 is enabled. Enabling version 3 also requires username, authtype and password REDACTED, "title": "v3", "type": "boolean", "_name_": "v3", "_required_": true}, "community": {"default": "public", "description": "SNMP community string for v1/v2c access. Allows letters and numbers: a-zA-Z0-9 special characters: !$%&()+-_={}[]<>,.? and spaces. Notable excluded characters: # / \\ @", "pattern": "^[!\\$%&()\\+\\-_={}\\[\\]<>,\\.\\?a-zA-Z0-9\\s]*$", "title": "community", "type": "string", "_name_": "community", "_required_": false}, "v3_username": {"description": "Username for SNMP version 3 authentication.", "maxLength": 20, "title": "v3_username", "type": "string", "_name_": "v3_username", "_required_": true}, "v3_authtype": {"description": "Authentication type for SNMP version 3 (empty string means no authentication).", "enum": ["", "MD5", "SHA"], "title": "v3_authtype", "type": "string", "_name_": "v3_authtype", "_required_": true}, "v3_password REDACTED, "title": "v3_password REDACTED, "type": "string", "_name_": "v3_password REDACTED, "_required_": true}, "v3_privproto": {"anyOf": [{"enum": [null, "AES", "DES"]}, {"type": "null"}], "description": "Privacy protocol for SNMP version 3 encryption. `null` means no encryption. If set, ['AES'|'DES'], a `privpassphrase` must be supplied.", "title": "v3_privproto", "_name_": "v3_privproto", "_required_": true}, "v3_privpassphrase": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Privacy passphrase for SNMP version 3 encryption. This field is required when `privproto` is set.", "title": "v3_privpassphrase", "_name_": "v3_privpassphrase", "_required_": false}, "loglevel": {"description": "Logging level for SNMP daemon (0=emergency to 7=debug).", "maximum": 7, "minimum": 0, "title": "loglevel", "type": "integer", "_name_": "loglevel", "_required_": true}, "options": {"description": "Additional SNMP daemon configuration options. Manual settings should be used with caution as they may render the SNMP service non-functional.", "title": "options", "type": "string", "_name_": "options", "_required_": true}, "zilstat": {"description": "Whether to enable ZFS dataset statistics collection for SNMP.", "title": "zilstat", "type": "boolean", "_name_": "zilstat", "_required_": true}, "id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["location", "contact", "traps", "v3", "v3_username", "v3_authtype", "v3_password REDACTED, "v3_privproto", "loglevel", "options", "zilstat", "id"], "title": "result", "type": "object", "description": "The updated SNMP service configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["location", "contact", "traps", "v3", "community", "v3_username", "v3_authtype", "v3_password REDACTED, "v3_privproto", "v3_privpassphrase", "loglevel", "options", "zilstat", "id"]}]}, "ssh.bindiface_choices": {"description": "Available choices for the bindiface attribute of SSH service.", "cli_description": "Available choices for the bindiface attribute of SSH service", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN", "SSH_READ", "SSH_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Result of `interface.choices`.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "ssh.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SSH_READ", "SSH_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the SSH service configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "bindiface": {"description": "Array of network interface names to bind the SSH service to.", "items": [{"type": "string"}], "title": "bindiface", "type": "array", "_name_": "bindiface", "_required_": true}, "tcpport": {"description": "TCP port number for SSH connections.", "maximum": 65535, "minimum": 1, "title": "tcpport", "type": "integer", "_name_": "tcpport", "_required_": true}, "password REDACTED, "items": [{"type": "string"}], "title": "password REDACTED, "type": "array", "_name_": "password REDACTED, "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}, "kerberosauth": {"description": "Whether Kerberos authentication is enabled.", "title": "kerberosauth", "type": "boolean", "_name_": "kerberosauth", "_required_": true}, "tcpfwd": {"description": "Whether TCP forwarding is enabled.", "title": "tcpfwd", "type": "boolean", "_name_": "tcpfwd", "_required_": true}, "compression": {"description": "Whether compression is enabled for SSH connections.", "title": "compression", "type": "boolean", "_name_": "compression", "_required_": true}, "sftp_log_level": {"description": "Logging level for SFTP subsystem (empty string means default).", "enum": ["", "QUIET", "FATAL", "ERROR", "INFO", "VERBOSE", "DEBUG", "DEBUG2", "DEBUG3"], "title": "sftp_log_level", "type": "string", "_name_": "sftp_log_level", "_required_": true}, "sftp_log_facility": {"description": "Syslog facility for SFTP logging (empty string means default).", "enum": ["", "DAEMON", "USER", "AUTH", "LOCAL0", "LOCAL1", "LOCAL2", "LOCAL3", "LOCAL4", "LOCAL5", "LOCAL6", "LOCAL7"], "title": "sftp_log_facility", "type": "string", "_name_": "sftp_log_facility", "_required_": true}, "weak_ciphers": {"description": "Array of weak ciphers to enable for compatibility with legacy clients.", "items": [{"enum": ["AES128-CBC", "NONE"], "type": "string"}], "title": "weak_ciphers", "type": "array", "_name_": "weak_ciphers", "_required_": true}, "options": {"description": "Additional SSH daemon configuration options.", "title": "options", "type": "string", "_name_": "options", "_required_": true}, "privatekey": {"description": "SSH host private key data.", "title": "privatekey", "type": "string", "_name_": "privatekey", "_required_": true}, "host_dsa_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "DSA host private key. `null` if not configured.", "title": "host_dsa_key", "_name_": "host_dsa_key", "_required_": true}, "host_dsa_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "DSA host public key. `null` if not configured.", "title": "host_dsa_key_pub", "_name_": "host_dsa_key_pub", "_required_": true}, "host_dsa_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "DSA host certificate public key. `null` if not configured.", "title": "host_dsa_key_cert_pub", "_name_": "host_dsa_key_cert_pub", "_required_": true}, "host_ecdsa_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ECDSA host private key. `null` if not configured.", "title": "host_ecdsa_key", "_name_": "host_ecdsa_key", "_required_": true}, "host_ecdsa_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ECDSA host public key. `null` if not configured.", "title": "host_ecdsa_key_pub", "_name_": "host_ecdsa_key_pub", "_required_": true}, "host_ecdsa_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ECDSA host certificate public key. `null` if not configured.", "title": "host_ecdsa_key_cert_pub", "_name_": "host_ecdsa_key_cert_pub", "_required_": true}, "host_ed25519_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Ed25519 host private key. `null` if not configured.", "title": "host_ed25519_key", "_name_": "host_ed25519_key", "_required_": true}, "host_ed25519_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Ed25519 host public key. `null` if not configured.", "title": "host_ed25519_key_pub", "_name_": "host_ed25519_key_pub", "_required_": true}, "host_ed25519_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Ed25519 host certificate public key. `null` if not configured.", "title": "host_ed25519_key_cert_pub", "_name_": "host_ed25519_key_cert_pub", "_required_": true}, "host_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Legacy SSH host private key. `null` if not configured.", "title": "host_key", "_name_": "host_key", "_required_": true}, "host_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Legacy SSH host public key. `null` if not configured.", "title": "host_key_pub", "_name_": "host_key_pub", "_required_": true}, "host_rsa_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "RSA host private key. `null` if not configured.", "title": "host_rsa_key", "_name_": "host_rsa_key", "_required_": true}, "host_rsa_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "RSA host public key. `null` if not configured.", "title": "host_rsa_key_pub", "_name_": "host_rsa_key_pub", "_required_": true}, "host_rsa_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "RSA host certificate public key. `null` if not configured.", "title": "host_rsa_key_cert_pub", "_name_": "host_rsa_key_cert_pub", "_required_": true}}, "required": ["id", "bindiface", "tcpport", "password REDACTED, "password REDACTED, "kerberosauth", "tcpfwd", "compression", "sftp_log_level", "sftp_log_facility", "weak_ciphers", "options", "privatekey", "host_dsa_key", "host_dsa_key_pub", "host_dsa_key_cert_pub", "host_ecdsa_key", "host_ecdsa_key_pub", "host_ecdsa_key_cert_pub", "host_ed25519_key", "host_ed25519_key_pub", "host_ed25519_key_cert_pub", "host_key", "host_key_pub", "host_rsa_key", "host_rsa_key_pub", "host_rsa_key_cert_pub"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "bindiface", "tcpport", "password REDACTED, "password REDACTED, "kerberosauth", "tcpfwd", "compression", "sftp_log_level", "sftp_log_facility", "weak_ciphers", "options", "privatekey", "host_dsa_key", "host_dsa_key_pub", "host_dsa_key_cert_pub", "host_ecdsa_key", "host_ecdsa_key_pub", "host_ecdsa_key_cert_pub", "host_ed25519_key", "host_ed25519_key_pub", "host_ed25519_key_cert_pub", "host_key", "host_key_pub", "host_rsa_key", "host_rsa_key_pub", "host_rsa_key_cert_pub"]}]}, "ssh.update": {"description": "Update settings of SSH daemon service.\n\nIf `bindiface` is empty it will listen for all available addresses.\n\n", "cli_description": "Update settings of SSH daemon service", "examples": {"websocket": ["\n\n Make sshd listen only to igb0 interface.\n\n :::javascript\n {\n \"id\": \"6841f242-840a-11e6-a437-00e04d680384\",\n \"msg\": \"method\",\n \"method\": \"ssh.update\",\n \"params\": [{\n \"bindiface\": [\"igb0\"]\n }]\n }"]}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SSH_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"bindiface": {"description": "Array of network interface names to bind the SSH service to.", "items": [{"type": "string"}], "title": "bindiface", "type": "array", "_name_": "bindiface", "_required_": false}, "tcpport": {"description": "TCP port number for SSH connections.", "maximum": 65535, "minimum": 1, "title": "tcpport", "type": "integer", "_name_": "tcpport", "_required_": false}, "password REDACTED, "items": [{"type": "string"}], "title": "password REDACTED, "type": "array", "_name_": "password REDACTED, "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "kerberosauth": {"description": "Whether Kerberos authentication is enabled.", "title": "kerberosauth", "type": "boolean", "_name_": "kerberosauth", "_required_": false}, "tcpfwd": {"description": "Whether TCP forwarding is enabled.", "title": "tcpfwd", "type": "boolean", "_name_": "tcpfwd", "_required_": false}, "compression": {"description": "Whether compression is enabled for SSH connections.", "title": "compression", "type": "boolean", "_name_": "compression", "_required_": false}, "sftp_log_level": {"description": "Logging level for SFTP subsystem (empty string means default).", "enum": ["", "QUIET", "FATAL", "ERROR", "INFO", "VERBOSE", "DEBUG", "DEBUG2", "DEBUG3"], "title": "sftp_log_level", "type": "string", "_name_": "sftp_log_level", "_required_": false}, "sftp_log_facility": {"description": "Syslog facility for SFTP logging (empty string means default).", "enum": ["", "DAEMON", "USER", "AUTH", "LOCAL0", "LOCAL1", "LOCAL2", "LOCAL3", "LOCAL4", "LOCAL5", "LOCAL6", "LOCAL7"], "title": "sftp_log_facility", "type": "string", "_name_": "sftp_log_facility", "_required_": false}, "weak_ciphers": {"description": "Array of weak ciphers to enable for compatibility with legacy clients.", "items": [{"enum": ["AES128-CBC", "NONE"], "type": "string"}], "title": "weak_ciphers", "type": "array", "_name_": "weak_ciphers", "_required_": false}, "options": {"description": "Additional SSH daemon configuration options.", "title": "options", "type": "string", "_name_": "options", "_required_": false}}, "title": "data", "type": "object", "description": "Updated SSH service configuration.", "_name_": "data", "_required_": true, "_attrs_order_": ["bindiface", "tcpport", "password REDACTED, "password REDACTED, "kerberosauth", "tcpfwd", "compression", "sftp_log_level", "sftp_log_facility", "weak_ciphers", "options"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the SSH service configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "bindiface": {"description": "Array of network interface names to bind the SSH service to.", "items": [{"type": "string"}], "title": "bindiface", "type": "array", "_name_": "bindiface", "_required_": true}, "tcpport": {"description": "TCP port number for SSH connections.", "maximum": 65535, "minimum": 1, "title": "tcpport", "type": "integer", "_name_": "tcpport", "_required_": true}, "password REDACTED, "items": [{"type": "string"}], "title": "password REDACTED, "type": "array", "_name_": "password REDACTED, "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}, "kerberosauth": {"description": "Whether Kerberos authentication is enabled.", "title": "kerberosauth", "type": "boolean", "_name_": "kerberosauth", "_required_": true}, "tcpfwd": {"description": "Whether TCP forwarding is enabled.", "title": "tcpfwd", "type": "boolean", "_name_": "tcpfwd", "_required_": true}, "compression": {"description": "Whether compression is enabled for SSH connections.", "title": "compression", "type": "boolean", "_name_": "compression", "_required_": true}, "sftp_log_level": {"description": "Logging level for SFTP subsystem (empty string means default).", "enum": ["", "QUIET", "FATAL", "ERROR", "INFO", "VERBOSE", "DEBUG", "DEBUG2", "DEBUG3"], "title": "sftp_log_level", "type": "string", "_name_": "sftp_log_level", "_required_": true}, "sftp_log_facility": {"description": "Syslog facility for SFTP logging (empty string means default).", "enum": ["", "DAEMON", "USER", "AUTH", "LOCAL0", "LOCAL1", "LOCAL2", "LOCAL3", "LOCAL4", "LOCAL5", "LOCAL6", "LOCAL7"], "title": "sftp_log_facility", "type": "string", "_name_": "sftp_log_facility", "_required_": true}, "weak_ciphers": {"description": "Array of weak ciphers to enable for compatibility with legacy clients.", "items": [{"enum": ["AES128-CBC", "NONE"], "type": "string"}], "title": "weak_ciphers", "type": "array", "_name_": "weak_ciphers", "_required_": true}, "options": {"description": "Additional SSH daemon configuration options.", "title": "options", "type": "string", "_name_": "options", "_required_": true}, "privatekey": {"description": "SSH host private key data.", "title": "privatekey", "type": "string", "_name_": "privatekey", "_required_": true}, "host_dsa_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "DSA host private key. `null` if not configured.", "title": "host_dsa_key", "_name_": "host_dsa_key", "_required_": true}, "host_dsa_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "DSA host public key. `null` if not configured.", "title": "host_dsa_key_pub", "_name_": "host_dsa_key_pub", "_required_": true}, "host_dsa_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "DSA host certificate public key. `null` if not configured.", "title": "host_dsa_key_cert_pub", "_name_": "host_dsa_key_cert_pub", "_required_": true}, "host_ecdsa_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ECDSA host private key. `null` if not configured.", "title": "host_ecdsa_key", "_name_": "host_ecdsa_key", "_required_": true}, "host_ecdsa_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ECDSA host public key. `null` if not configured.", "title": "host_ecdsa_key_pub", "_name_": "host_ecdsa_key_pub", "_required_": true}, "host_ecdsa_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "ECDSA host certificate public key. `null` if not configured.", "title": "host_ecdsa_key_cert_pub", "_name_": "host_ecdsa_key_cert_pub", "_required_": true}, "host_ed25519_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Ed25519 host private key. `null` if not configured.", "title": "host_ed25519_key", "_name_": "host_ed25519_key", "_required_": true}, "host_ed25519_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Ed25519 host public key. `null` if not configured.", "title": "host_ed25519_key_pub", "_name_": "host_ed25519_key_pub", "_required_": true}, "host_ed25519_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Ed25519 host certificate public key. `null` if not configured.", "title": "host_ed25519_key_cert_pub", "_name_": "host_ed25519_key_cert_pub", "_required_": true}, "host_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Legacy SSH host private key. `null` if not configured.", "title": "host_key", "_name_": "host_key", "_required_": true}, "host_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Legacy SSH host public key. `null` if not configured.", "title": "host_key_pub", "_name_": "host_key_pub", "_required_": true}, "host_rsa_key": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "RSA host private key. `null` if not configured.", "title": "host_rsa_key", "_name_": "host_rsa_key", "_required_": true}, "host_rsa_key_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "RSA host public key. `null` if not configured.", "title": "host_rsa_key_pub", "_name_": "host_rsa_key_pub", "_required_": true}, "host_rsa_key_cert_pub": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "RSA host certificate public key. `null` if not configured.", "title": "host_rsa_key_cert_pub", "_name_": "host_rsa_key_cert_pub", "_required_": true}}, "required": ["id", "bindiface", "tcpport", "password REDACTED, "password REDACTED, "kerberosauth", "tcpfwd", "compression", "sftp_log_level", "sftp_log_facility", "weak_ciphers", "options", "privatekey", "host_dsa_key", "host_dsa_key_pub", "host_dsa_key_cert_pub", "host_ecdsa_key", "host_ecdsa_key_pub", "host_ecdsa_key_cert_pub", "host_ed25519_key", "host_ed25519_key_pub", "host_ed25519_key_cert_pub", "host_key", "host_key_pub", "host_rsa_key", "host_rsa_key_pub", "host_rsa_key_cert_pub"], "title": "result", "type": "object", "description": "The updated SSH service configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "bindiface", "tcpport", "password REDACTED, "password REDACTED, "kerberosauth", "tcpfwd", "compression", "sftp_log_level", "sftp_log_facility", "weak_ciphers", "options", "privatekey", "host_dsa_key", "host_dsa_key_pub", "host_dsa_key_cert_pub", "host_ecdsa_key", "host_ecdsa_key_pub", "host_ecdsa_key_cert_pub", "host_ed25519_key", "host_ed25519_key_pub", "host_ed25519_key_cert_pub", "host_key", "host_key_pub", "host_rsa_key", "host_rsa_key_pub", "host_rsa_key_cert_pub"]}]}, "staticroute.create": {"description": "Create a Static Route.\n\nAddress families of `gateway` and `destination` should match when creating a static route.\n\n`description` is an optional attribute for any notes regarding the static route.", "cli_description": "Create a Static Route", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": true}, "description": {"default": "", "description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}}, "required": ["destination", "gateway"], "title": "data", "type": "object", "description": "Configuration for the new static route.", "_name_": "data", "_required_": true, "_attrs_order_": ["destination", "gateway", "description"]}], "returns": [{"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": true}, "description": {"default": "", "description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "id": {"description": "Unique identifier for this static route.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["destination", "gateway", "id"], "title": "result", "type": "object", "description": "The newly created static route configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["destination", "gateway", "description", "id"]}]}, "staticroute.delete": {"description": "Delete Static Route of `id`.", "cli_description": "Delete Static Route of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"description": "ID of the static route to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Whether the static route was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "staticroute.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": true}, "description": {"default": "", "description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "id": {"description": "Unique identifier for this static route.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["destination", "gateway", "id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["destination", "gateway", "description", "id"]}]}, "staticroute.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_READ", "NETWORK_INTERFACE_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": false}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": false}, "description": {"description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "id": {"description": "Unique identifier for this static route.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}}, "title": "StaticRouteQueryResultItem", "type": "object", "_attrs_order_": ["destination", "gateway", "description", "id"]}], "type": "array"}, {"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": false}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": false}, "description": {"description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "id": {"description": "Unique identifier for this static route.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}}, "title": "StaticRouteQueryResultItem", "type": "object", "_attrs_order_": ["destination", "gateway", "description", "id"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "staticroute.update": {"description": "Update Static Route of `id`.", "cli_description": "Update Static Route of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_INTERFACE_WRITE"], "accepts": [{"description": "ID of the static route to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": false}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": false}, "description": {"description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for the static route.", "_name_": "data", "_required_": true, "_attrs_order_": ["destination", "gateway", "description"]}], "returns": [{"additionalProperties": false, "properties": {"destination": {"description": "Destination network or host for this static route.", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": true}, "gateway": {"description": "Gateway IP address for this static route.", "minLength": 1, "title": "gateway", "type": "string", "_name_": "gateway", "_required_": true}, "description": {"default": "", "description": "Optional description for this static route.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "id": {"description": "Unique identifier for this static route.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}}, "required": ["destination", "gateway", "id"], "title": "result", "type": "object", "description": "The updated static route configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["destination", "gateway", "description", "id"]}]}, "support.attach_ticket": {"description": "Method to attach a file to an existing ticket.", "cli_description": "Method to attach a file to an existing ticket", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": true, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"ticket": {"description": "Ticket number to attach the file to.", "title": "ticket", "type": "integer", "_name_": "ticket", "_required_": true}, "filename": {"description": "Path to the file to attach to the ticket.", "title": "filename", "type": "string", "_name_": "filename", "_required_": true}, "token REDACTED, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": false}}, "required": ["ticket", "filename"], "title": "data", "type": "object", "description": "SupportAttachTicketArgs parameters.", "_name_": "data", "_required_": true, "_attrs_order_": ["ticket", "filename", "token REDACTED}], "returns": [{"description": "Returns `null` on successful file attachment.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "support.attach_ticket_max_size": {"description": "Returns maximum uploaded file size for `support.attach_ticket`", "cli_description": "Returns maximum uploaded file size for `support", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_READ", "SUPPORT_WRITE"], "accepts": [], "returns": [{"description": "Maximum file size in bytes allowed for ticket attachments.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "support.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_READ", "SUPPORT_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the support configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether support is enabled. `null` if not available.", "title": "enabled", "_name_": "enabled", "_required_": true}, "name": {"description": "Primary contact name for support.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "title": {"description": "Primary contact title or role.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "email": {"description": "Primary contact email address.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "phone": {"description": "Primary contact phone number.", "title": "phone", "type": "string", "_name_": "phone", "_required_": true}, "secondary_name": {"description": "Secondary contact name for support.", "title": "secondary_name", "type": "string", "_name_": "secondary_name", "_required_": true}, "secondary_title": {"description": "Secondary contact title or role.", "title": "secondary_title", "type": "string", "_name_": "secondary_title", "_required_": true}, "secondary_email": {"description": "Secondary contact email address.", "title": "secondary_email", "type": "string", "_name_": "secondary_email", "_required_": true}, "secondary_phone": {"description": "Secondary contact phone number.", "title": "secondary_phone", "type": "string", "_name_": "secondary_phone", "_required_": true}}, "required": ["id", "enabled", "name", "title", "email", "phone", "secondary_name", "secondary_title", "secondary_email", "secondary_phone"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "name", "title", "email", "phone", "secondary_name", "secondary_title", "secondary_email", "secondary_phone"]}]}, "support.fields": {"description": "Returns list of pairs of field names and field titles for Proactive Support.", "cli_description": "Returns list of pairs of field names and field titles for Proactive Support", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_READ", "SUPPORT_WRITE"], "accepts": [], "returns": [{"description": "Pairs of field names and their titles for Proactive Support.", "items": [{"items": [{"type": "string"}], "type": "array"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "support.is_available": {"description": "Returns whether Proactive Support is available for this product type and current license.", "cli_description": "Returns whether Proactive Support is available for this product type and current license", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_READ", "SUPPORT_WRITE"], "accepts": [], "returns": [{"description": "Whether support functionality is available on this system.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "support.is_available_and_enabled": {"description": "Returns whether Proactive Support is available and enabled.", "cli_description": "Returns whether Proactive Support is available and enabled", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_READ", "SUPPORT_WRITE"], "accepts": [], "returns": [{"description": "Whether support functionality is both available and enabled.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "support.new_ticket": {"description": "Creates a new ticket for support.\nThis is done using the support proxy API.\nFor TrueNAS Community Edition it will be created on JIRA and for TrueNAS Enterprise on Salesforce.\n\nFor Community Edition, `criticality`, `environment`, `phone`, `name`, and `email` attributes are not required.\nFor Enterprise, `token REDACTED, "cli_description": "Creates a new ticket for support", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_WRITE"], "accepts": [{"anyOf": [{"additionalProperties": false, "properties": {"title": {"description": "Title of the support ticket.", "maxLength": 200, "title": "title", "type": "string", "_name_": "title", "_required_": true}, "body": {"description": "Detailed description of the issue or request.", "maxLength": 20000, "title": "body", "type": "string", "_name_": "body", "_required_": true}, "category": {"description": "Category or classification of the support issue.", "title": "category", "type": "string", "_name_": "category", "_required_": true}, "attach_debug": {"default": false, "description": "Whether to attach debug information to the ticket.", "title": "attach_debug", "type": "boolean", "_name_": "attach_debug", "_required_": false}, "criticality": {"description": "Priority or criticality level of the issue.", "title": "criticality", "type": "string", "_name_": "criticality", "_required_": true}, "environment": {"description": "Description of the environment where the issue occurs.", "title": "environment", "type": "string", "_name_": "environment", "_required_": true}, "phone": {"description": "Contact phone number for this ticket.", "title": "phone", "type": "string", "_name_": "phone", "_required_": true}, "name": {"description": "Contact name for this ticket.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "email": {"description": "Contact email address for this ticket.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "cc": {"default": [], "description": "Array of email addresses to copy on the ticket.", "items": [{"type": "string"}], "title": "cc", "type": "array", "_name_": "cc", "_required_": false}}, "required": ["title", "body", "category", "criticality", "environment", "phone", "name", "email"], "title": "SupportNewTicketEnterprise", "type": "object", "_attrs_order_": ["title", "body", "category", "attach_debug", "criticality", "environment", "phone", "name", "email", "cc"]}, {"additionalProperties": false, "properties": {"title": {"description": "Title of the support ticket.", "maxLength": 200, "title": "title", "type": "string", "_name_": "title", "_required_": true}, "body": {"description": "Detailed description of the issue or request.", "maxLength": 20000, "title": "body", "type": "string", "_name_": "body", "_required_": true}, "attach_debug": {"default": false, "description": "Whether to attach debug information to the ticket.", "title": "attach_debug", "type": "boolean", "_name_": "attach_debug", "_required_": false}, "token REDACTED, "title": "token REDACTED, "type": "string", "_name_": "token REDACTED, "_required_": true}, "type": {"description": "Type of ticket being created.", "enum": ["BUG", "FEATURE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "cc": {"default": [], "description": "Array of email addresses to copy on the ticket.", "items": [{"type": "string"}], "title": "cc", "type": "array", "_name_": "cc", "_required_": false}}, "required": ["title", "body", "token REDACTED, "type"], "title": "SupportNewTicketCommunity", "type": "object", "_attrs_order_": ["title", "body", "attach_debug", "token REDACTED, "type", "cc"]}], "description": "Support ticket data for either enterprise or community support.", "title": "data", "_name_": "data", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"ticket": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Ticket number if successfully created. `null` if creation failed.", "title": "ticket", "_name_": "ticket", "_required_": true}, "url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL to view the created ticket. `null` if not available.", "title": "url", "_name_": "url", "_required_": true}, "has_debug": {"description": "Whether debug information was attached to the ticket.", "title": "has_debug", "type": "boolean", "_name_": "has_debug", "_required_": true}}, "required": ["ticket", "url", "has_debug"], "title": "result", "type": "object", "description": "SupportNewTicketResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["ticket", "url", "has_debug"]}]}, "support.similar_issues": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SUPPORT_READ", "SUPPORT_WRITE"], "accepts": [{"description": "Search query to find similar issues or knowledge base articles.", "title": "query", "type": "string", "_name_": "query", "_required_": true}], "returns": [{"description": "Array of similar issues found based on the search query.", "items": [{"additionalProperties": true, "properties": {"url": {"description": "URL link to the similar issue or knowledge base article.", "title": "url", "type": "string", "_name_": "url", "_required_": false}, "summary": {"description": "Brief summary of the similar issue.", "title": "summary", "type": "string", "_name_": "summary", "_required_": false}}, "title": "SupportSimilarIssue", "type": "object", "_attrs_order_": ["url", "summary"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "support.update": {"description": "Update Proactive Support settings.", "cli_description": "Update Proactive Support settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SUPPORT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the support configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "enabled": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether support is enabled. `null` if not available.", "title": "enabled", "_name_": "enabled", "_required_": false}, "name": {"description": "Primary contact name for support.", "title": "name", "type": "string", "_name_": "name", "_required_": false}, "title": {"description": "Primary contact title or role.", "title": "title", "type": "string", "_name_": "title", "_required_": false}, "email": {"description": "Primary contact email address.", "title": "email", "type": "string", "_name_": "email", "_required_": false}, "phone": {"description": "Primary contact phone number.", "title": "phone", "type": "string", "_name_": "phone", "_required_": false}, "secondary_name": {"description": "Secondary contact name for support.", "title": "secondary_name", "type": "string", "_name_": "secondary_name", "_required_": false}, "secondary_title": {"description": "Secondary contact title or role.", "title": "secondary_title", "type": "string", "_name_": "secondary_title", "_required_": false}, "secondary_email": {"description": "Secondary contact email address.", "title": "secondary_email", "type": "string", "_name_": "secondary_email", "_required_": false}, "secondary_phone": {"description": "Secondary contact phone number.", "title": "secondary_phone", "type": "string", "_name_": "secondary_phone", "_required_": false}}, "title": "data", "type": "object", "description": "Updated support configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["id", "enabled", "name", "title", "email", "phone", "secondary_name", "secondary_title", "secondary_email", "secondary_phone"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the support configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether support is enabled. `null` if not available.", "title": "enabled", "_name_": "enabled", "_required_": true}, "name": {"description": "Primary contact name for support.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "title": {"description": "Primary contact title or role.", "title": "title", "type": "string", "_name_": "title", "_required_": true}, "email": {"description": "Primary contact email address.", "title": "email", "type": "string", "_name_": "email", "_required_": true}, "phone": {"description": "Primary contact phone number.", "title": "phone", "type": "string", "_name_": "phone", "_required_": true}, "secondary_name": {"description": "Secondary contact name for support.", "title": "secondary_name", "type": "string", "_name_": "secondary_name", "_required_": true}, "secondary_title": {"description": "Secondary contact title or role.", "title": "secondary_title", "type": "string", "_name_": "secondary_title", "_required_": true}, "secondary_email": {"description": "Secondary contact email address.", "title": "secondary_email", "type": "string", "_name_": "secondary_email", "_required_": true}, "secondary_phone": {"description": "Secondary contact phone number.", "title": "secondary_phone", "type": "string", "_name_": "secondary_phone", "_required_": true}}, "required": ["id", "enabled", "name", "title", "email", "phone", "secondary_name", "secondary_title", "secondary_email", "secondary_phone"], "title": "result", "type": "object", "description": "The updated support configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "name", "title", "email", "phone", "secondary_name", "secondary_title", "secondary_email", "secondary_phone"]}]}, "system.boot_id": {"description": "Returns a unique boot identifier.\n\nIt is supposed to be unique every system boot.", "cli_description": "Returns a unique boot identifier", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"description": "Unique identifier for the current system boot session.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.debug": {"description": "Download a debug file.", "cli_description": "Download a debug file", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Debug information collection completed successfully.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.feature_enabled": {"description": "Returns whether the `feature` is enabled or not", "cli_description": "Returns whether the `feature` is enabled or not", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_PRODUCT_READ"], "accepts": [{"description": "Feature to check for availability on this system.", "enum": ["DEDUP", "FIBRECHANNEL", "VM"], "title": "feature", "type": "string", "_name_": "feature", "_required_": true}], "returns": [{"description": "Whether the specified feature is enabled on this system.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "system.host_id": {"description": "Retrieve a hex string that is generated based\non the contents of the `/etc/hostid` file. This\nis a permanent value that persists across\nreboots/upgrades and can be used as a unique\nidentifier for the machine.", "cli_description": "Retrieve a hex string that is generated based on the contents of the `/etc/hostid` file", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "The system host identifier.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.info": {"description": "Returns basic system information.", "cli_description": "Returns basic system information", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"version": {"description": "TrueNAS version.", "title": "version", "type": "string", "_name_": "version", "_required_": true}, "buildtime": {"description": "TrueNAS build time.", "format": "date-time", "title": "buildtime", "type": "string", "_name_": "buildtime", "_required_": true}, "hostname": {"description": "System host name.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "physmem": {"description": "System physical memory in bytes.", "title": "physmem", "type": "integer", "_name_": "physmem", "_required_": true}, "model": {"description": "CPU model.", "title": "model", "type": "string", "_name_": "model", "_required_": true}, "cores": {"description": "Number of CPU cores.", "title": "cores", "type": "integer", "_name_": "cores", "_required_": true}, "physical_cores": {"description": "Number of physical CPU cores.", "title": "physical_cores", "type": "integer", "_name_": "physical_cores", "_required_": true}, "loadavg": {"description": "System load averages over 1, 5, and 15 minute periods.", "items": [{}], "title": "loadavg", "type": "array", "_name_": "loadavg", "_required_": true}, "uptime": {"description": "Human-readable system uptime string.", "title": "uptime", "type": "string", "_name_": "uptime", "_required_": true}, "uptime_seconds": {"description": "System uptime in seconds since boot.", "title": "uptime_seconds", "type": "number", "_name_": "uptime_seconds", "_required_": true}, "system_serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "System hardware serial number. `null` if not available.", "title": "system_serial", "_name_": "system_serial", "_required_": true}, "system_product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "System product name from hardware manufacturer. `null` if not available.", "title": "system_product", "_name_": "system_product", "_required_": true}, "system_product_version": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "System product version from hardware manufacturer. `null` if not available.", "title": "system_product_version", "_name_": "system_product_version", "_required_": true}, "license": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "System license information. `null` if no license is installed.", "title": "license", "_name_": "license", "_required_": true}, "boottime": {"description": "System boot time.", "format": "date-time", "title": "boottime", "type": "string", "_name_": "boottime", "_required_": true}, "datetime": {"description": "Current system date and time.", "format": "date-time", "title": "datetime", "type": "string", "_name_": "datetime", "_required_": true}, "timezone": {"description": "System timezone identifier.", "title": "timezone", "type": "string", "_name_": "timezone", "_required_": true}, "system_manufacturer": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "System manufacturer name from hardware. `null` if not available.", "title": "system_manufacturer", "_name_": "system_manufacturer", "_required_": true}, "ecc_memory": {"description": "Whether the system has ECC (Error Correcting Code) memory.", "title": "ecc_memory", "type": "boolean", "_name_": "ecc_memory", "_required_": true}}, "required": ["version", "buildtime", "hostname", "physmem", "model", "cores", "physical_cores", "loadavg", "uptime", "uptime_seconds", "system_serial", "system_product", "system_product_version", "license", "boottime", "datetime", "timezone", "system_manufacturer", "ecc_memory"], "title": "result", "type": "object", "description": "SystemInfoResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["version", "buildtime", "hostname", "physmem", "model", "cores", "physical_cores", "loadavg", "uptime", "uptime_seconds", "system_serial", "system_product", "system_product_version", "license", "boottime", "datetime", "timezone", "system_manufacturer", "ecc_memory"]}]}, "system.license_update": {"description": "Update license file", "cli_description": "Update license file", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_PRODUCT_WRITE"], "accepts": [{"description": "License key to apply to the system.", "minLength": 1, "title": "license", "type": "string", "_name_": "license", "_required_": true}], "returns": [{"description": "Returns `null` on successful license update.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.product_type": {"description": "Returns the type of the product", "cli_description": "Returns the type of the product", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_PRODUCT_READ"], "accepts": [], "returns": [{"description": "Product type of this TrueNAS system.", "enum": ["COMMUNITY_EDITION", "ENTERPRISE"], "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.ready": {"description": "Returns whether the system completed boot and is ready to use", "cli_description": "Returns whether the system completed boot and is ready to use", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"description": "Whether the system has completed startup and is ready for use.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "system.reboot": {"description": "Reboots the operating system.\n\nEmits an \"added\" event of name \"system\" and id \"reboot\".", "cli_description": "Reboots the operating system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FULL_ADMIN"], "accepts": [{"description": "Reason for the system reboot.", "minLength": 1, "title": "reason", "type": "string", "_name_": "reason", "_required_": true}, {"additionalProperties": false, "properties": {"delay": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Delay in seconds before rebooting. `null` for immediate reboot.", "title": "delay", "_name_": "delay", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the reboot process.", "_name_": "options", "_required_": false, "_attrs_order_": ["delay"]}], "returns": [{"description": "Returns `null` on successful reboot initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.release_notes_url": {"description": "Returns the release notes URL for a version of SCALE.\n\n`version_str` str: represents a version to check against\n\nIf `version` is not provided, then the release notes URL will return\n a link for the currently installed version of SCALE.", "cli_description": "Returns the release notes URL for a version of SCALE", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_PRODUCT_READ"], "accepts": [{"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Version string to get release notes for. `null` for current version.", "title": "version_str", "_name_": "version_str", "_required_": false}], "returns": [{"description": "URL to the release notes for the specified version.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.shutdown": {"description": "Shuts down the operating system.\n\nAn \"added\" event of name \"system\" and id \"shutdown\" is emitted when shutdown is initiated.", "cli_description": "Shuts down the operating system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FULL_ADMIN"], "accepts": [{"description": "Reason for the system shutdown.", "minLength": 1, "title": "reason", "type": "string", "_name_": "reason", "_required_": true}, {"additionalProperties": false, "properties": {"delay": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Delay in seconds before shutting down. `null` for immediate shutdown.", "title": "delay", "_name_": "delay", "_required_": false}}, "title": "options", "type": "object", "description": "Options for controlling the shutdown process.", "_name_": "options", "_required_": false, "_attrs_order_": ["delay"]}], "returns": [{"description": "Returns `null` on successful shutdown initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.state": {"description": "Returns system state:\n\"BOOTING\" - System is booting\n\"READY\" - System completed boot and is ready to use\n\"SHUTTING_DOWN\" - System is shutting down", "cli_description": "Returns system state: \"BOOTING\" - System is booting \"READY\" - System completed boot and is ready to use \"SHUTTING_DOWN\" - System is shutting down", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"description": "Current system state indicating boot status or shutdown process.", "enum": ["BOOTING", "READY", "SHUTTING_DOWN"], "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.version": {"description": "Returns the full name of the software version of the system.", "cli_description": "Returns the full name of the software version of the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"description": "Full version string of the TrueNAS system.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.version_short": {"description": "Returns the short name of the software version of the system.", "cli_description": "Returns the short name of the software version of the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"description": "Short version string of the TrueNAS system.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.advanced.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "advancedmode": {"description": "Enable advanced mode to show additional configuration options in the web interface.", "title": "advancedmode", "type": "boolean", "_name_": "advancedmode", "_required_": true}, "autotune": {"description": "Execute autotune script which attempts to optimize the system based on the installed hardware.", "title": "autotune", "type": "boolean", "_name_": "autotune", "_required_": true}, "kdump_enabled": {"description": "Enable kernel crash dumps for debugging system crashes.", "title": "kdump_enabled", "type": "boolean", "_name_": "kdump_enabled", "_required_": true}, "boot_scrub": {"description": "Number of days between automatic boot pool scrubs.", "exclusiveMinimum": 0, "title": "boot_scrub", "type": "integer", "_name_": "boot_scrub", "_required_": true}, "consolemenu": {"description": "Enable console menu. Default to standard login in the console if disabled.", "title": "consolemenu", "type": "boolean", "_name_": "consolemenu", "_required_": true}, "consolemsg": {"description": "Deprecated: Please use `consolemsg` attribute in the `system.general` plugin instead.", "title": "consolemsg", "type": "boolean", "_name_": "consolemsg", "_required_": true}, "debugkernel": {"description": "Enable debug kernel for additional logging and debugging capabilities.", "title": "debugkernel", "type": "boolean", "_name_": "debugkernel", "_required_": true}, "fqdn_syslog": {"description": "Include the full domain name in syslog messages.", "title": "fqdn_syslog", "type": "boolean", "_name_": "fqdn_syslog", "_required_": true}, "motd": {"description": "Message of the day displayed after login.", "title": "motd", "type": "string", "_name_": "motd", "_required_": true}, "login_banner": {"description": "Banner message displayed before login prompt.", "maxLength": 4096, "title": "login_banner", "type": "string", "_name_": "login_banner", "_required_": true}, "powerdaemon": {"description": "Enable the power management daemon for automatic power management.", "title": "powerdaemon", "type": "boolean", "_name_": "powerdaemon", "_required_": true}, "serialconsole": {"description": "Enable serial console access.", "title": "serialconsole", "type": "boolean", "_name_": "serialconsole", "_required_": true}, "serialport": {"description": "Serial port device for console access.", "title": "serialport", "type": "string", "_name_": "serialport", "_required_": true}, "anonstats_token REDACTED, "title": "anonstats_token REDACTED, "type": "string", "_name_": "anonstats_token REDACTED, "_required_": true}, "serialspeed": {"description": "Baud rate for serial console communication.", "enum": ["9600", "19200", "38400", "57600", "115200"], "title": "serialspeed", "type": "string", "_name_": "serialspeed", "_required_": true}, "overprovision": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Percentage of SSD overprovisioning to reserve for wear leveling.", "title": "overprovision", "_name_": "overprovision", "_required_": true}, "traceback": {"description": "Enable generation and saving of tracebacks for debugging.", "title": "traceback", "type": "boolean", "_name_": "traceback", "_required_": true}, "uploadcrash": {"description": "Automatically upload crash reports to iXsystems for analysis.", "title": "uploadcrash", "type": "boolean", "_name_": "uploadcrash", "_required_": true}, "anonstats": {"description": "Enable anonymous usage statistics reporting to help improve TrueNAS.", "title": "anonstats", "type": "boolean", "_name_": "anonstats", "_required_": true}, "sed_user": {"description": "SED (Self-Encrypting Drive) user type for drive encryption.", "enum": ["USER", "MASTER"], "title": "sed_user", "type": "string", "_name_": "sed_user", "_required_": true}, "sysloglevel": {"description": "Minimum log level for syslog messages. F_EMERG is most critical, F_DEBUG is least critical.", "enum": ["F_EMERG", "F_ALERT", "F_CRIT", "F_ERR", "F_WARNING", "F_NOTICE", "F_INFO", "F_DEBUG"], "title": "sysloglevel", "type": "string", "_name_": "sysloglevel", "_required_": true}, "syslogservers": {"default": [], "description": "Configurations for up to two remote syslog servers.", "items": [{"additionalProperties": false, "properties": {"host": {"description": "Remote syslog server DNS hostname or IP address.\n\nNonstandard port numbers can be used by appending a colon and port number to the hostname, like mysyslogserver:1928.\n\nPort 514 is used by default for TCP and UDP transports as per RFC3164; port 6514 is used by default for TLS transport as per RFC5425.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "transport": {"default": "UDP", "description": "Transport Protocol for the remote system log server connection.", "enum": ["UDP", "TCP", "TLS"], "title": "transport", "type": "string", "_name_": "transport", "_required_": false}, "tls_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Applies only if `transport` is \"TLS\".\n\nID of the local certificate to send for mutual TLS (mTLS) connections. `null` indicates one-way TLS in which only the server identified by `host` will need to provide a certificate.", "title": "tls_certificate", "_name_": "tls_certificate", "_required_": false}}, "required": ["host"], "title": "SyslogServer", "type": "object", "_attrs_order_": ["host", "transport", "tls_certificate"]}], "maxItems": 2, "title": "syslogservers", "type": "array", "_name_": "syslogservers", "_required_": false}, "syslog_audit": {"description": "The remote syslog server(s) will also receive audit messages.", "title": "syslog_audit", "type": "boolean", "_name_": "syslog_audit", "_required_": false}, "isolated_gpu_pci_ids": {"description": "List of GPU PCI IDs to isolate from the host system for VM passthrough.", "items": [{"type": "string"}], "title": "isolated_gpu_pci_ids", "type": "array", "_name_": "isolated_gpu_pci_ids", "_required_": true}, "kernel_extra_options": {"description": "Additional kernel boot parameters to pass to the Linux kernel.", "title": "kernel_extra_options", "type": "string", "_name_": "kernel_extra_options", "_required_": true}}, "required": ["id", "advancedmode", "autotune", "kdump_enabled", "boot_scrub", "consolemenu", "consolemsg", "debugkernel", "fqdn_syslog", "motd", "login_banner", "powerdaemon", "serialconsole", "serialport", "anonstats_token REDACTED, "serialspeed", "overprovision", "traceback", "uploadcrash", "anonstats", "sed_user", "sysloglevel", "isolated_gpu_pci_ids", "kernel_extra_options"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "advancedmode", "autotune", "kdump_enabled", "boot_scrub", "consolemenu", "consolemsg", "debugkernel", "fqdn_syslog", "motd", "login_banner", "powerdaemon", "serialconsole", "serialport", "anonstats_token REDACTED, "serialspeed", "overprovision", "traceback", "uploadcrash", "anonstats", "sed_user", "sysloglevel", "syslogservers", "syslog_audit", "isolated_gpu_pci_ids", "kernel_extra_options"]}]}, "system.advanced.get_gpu_pci_choices": {"description": "This endpoint gives all the gpu pci ids/slots that can be isolated.", "cli_description": "This endpoint gives all the gpu pci ids/slots that can be isolated", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"description": "Available GPU PCI devices that can be isolated for VM passthrough.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.advanced.login_banner": {"description": "Returns user set login banner", "cli_description": "Returns user set login banner", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"description": "Current login banner message.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.advanced.sed_global_password REDACTED, otherwise an empty string", "cli_description": "Returns configured global SED password REDACTED, otherwise an empty string", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"description": "Current SED global password REDACTED, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.advanced.sed_global_password REDACTED, "cli_description": "Returns a boolean identifying whether or not a global SED password REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"description": "Whether a SED global password REDACTED, "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "system.advanced.serial_port_choices": {"description": "Get available choices for `serialport`.", "cli_description": "Get available choices for `serialport`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Available serial ports for console configuration.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.advanced.syslog_certificate_authority_choices": {"description": "Return choices of certificate authorities which can be used for `syslog_tls_certificate_authority`.\n---- NO LONGER USED: TO BE REMOVED AFTER UI UPDATE ----", "cli_description": "Return choices of certificate authorities which can be used for `syslog_tls_certificate_authority`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {}, "title": "result", "type": "object", "description": "Available certificate authorities for syslog TLS (currently empty).", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "system.advanced.syslog_certificate_choices": {"description": "Return choices of certificates which can be used for `syslogservers.N.tls_certificate`.", "cli_description": "Return choices of certificates which can be used for `syslogservers", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_ADVANCED_READ", "SYSTEM_ADVANCED_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"minLength": 1, "type": "string"}, "description": "IDs of certificates mapped to their names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.advanced.update": {"description": "Update System Advanced Service Configuration.", "cli_description": "Update System Advanced Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_ADVANCED_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"advancedmode": {"description": "Enable advanced mode to show additional configuration options in the web interface.", "title": "advancedmode", "type": "boolean", "_name_": "advancedmode", "_required_": false}, "autotune": {"description": "Execute autotune script which attempts to optimize the system based on the installed hardware.", "title": "autotune", "type": "boolean", "_name_": "autotune", "_required_": false}, "kdump_enabled": {"description": "Enable kernel crash dumps for debugging system crashes.", "title": "kdump_enabled", "type": "boolean", "_name_": "kdump_enabled", "_required_": false}, "boot_scrub": {"description": "Number of days between automatic boot pool scrubs.", "exclusiveMinimum": 0, "title": "boot_scrub", "type": "integer", "_name_": "boot_scrub", "_required_": false}, "consolemenu": {"description": "Enable console menu. Default to standard login in the console if disabled.", "title": "consolemenu", "type": "boolean", "_name_": "consolemenu", "_required_": false}, "consolemsg": {"description": "Deprecated: Please use `consolemsg` attribute in the `system.general` plugin instead.", "title": "consolemsg", "type": "boolean", "_name_": "consolemsg", "_required_": false}, "debugkernel": {"description": "Enable debug kernel for additional logging and debugging capabilities.", "title": "debugkernel", "type": "boolean", "_name_": "debugkernel", "_required_": false}, "fqdn_syslog": {"description": "Include the full domain name in syslog messages.", "title": "fqdn_syslog", "type": "boolean", "_name_": "fqdn_syslog", "_required_": false}, "motd": {"description": "Message of the day displayed after login.", "title": "motd", "type": "string", "_name_": "motd", "_required_": false}, "login_banner": {"description": "Banner message displayed before login prompt.", "maxLength": 4096, "title": "login_banner", "type": "string", "_name_": "login_banner", "_required_": false}, "powerdaemon": {"description": "Enable the power management daemon for automatic power management.", "title": "powerdaemon", "type": "boolean", "_name_": "powerdaemon", "_required_": false}, "serialconsole": {"description": "Enable serial console access.", "title": "serialconsole", "type": "boolean", "_name_": "serialconsole", "_required_": false}, "serialport": {"description": "Serial port device for console access.", "title": "serialport", "type": "string", "_name_": "serialport", "_required_": false}, "serialspeed": {"description": "Baud rate for serial console communication.", "enum": ["9600", "19200", "38400", "57600", "115200"], "title": "serialspeed", "type": "string", "_name_": "serialspeed", "_required_": false}, "overprovision": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Percentage of SSD overprovisioning to reserve for wear leveling.", "title": "overprovision", "_name_": "overprovision", "_required_": false}, "traceback": {"description": "Enable generation and saving of tracebacks for debugging.", "title": "traceback", "type": "boolean", "_name_": "traceback", "_required_": false}, "uploadcrash": {"description": "Automatically upload crash reports to iXsystems for analysis.", "title": "uploadcrash", "type": "boolean", "_name_": "uploadcrash", "_required_": false}, "anonstats": {"description": "Enable anonymous usage statistics reporting to help improve TrueNAS.", "title": "anonstats", "type": "boolean", "_name_": "anonstats", "_required_": false}, "sed_user": {"description": "SED (Self-Encrypting Drive) user type for drive encryption.", "enum": ["USER", "MASTER"], "title": "sed_user", "type": "string", "_name_": "sed_user", "_required_": false}, "sysloglevel": {"description": "Minimum log level for syslog messages. F_EMERG is most critical, F_DEBUG is least critical.", "enum": ["F_EMERG", "F_ALERT", "F_CRIT", "F_ERR", "F_WARNING", "F_NOTICE", "F_INFO", "F_DEBUG"], "title": "sysloglevel", "type": "string", "_name_": "sysloglevel", "_required_": false}, "syslogservers": {"description": "Configurations for up to two remote syslog servers.\n\n**If provided, will overwrite the entire array in the existing entry.**", "items": [{"additionalProperties": false, "properties": {"host": {"description": "Remote syslog server DNS hostname or IP address.\n\nNonstandard port numbers can be used by appending a colon and port number to the hostname, like mysyslogserver:1928.\n\nPort 514 is used by default for TCP and UDP transports as per RFC3164; port 6514 is used by default for TLS transport as per RFC5425.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "transport": {"default": "UDP", "description": "Transport Protocol for the remote system log server connection.", "enum": ["UDP", "TCP", "TLS"], "title": "transport", "type": "string", "_name_": "transport", "_required_": false}, "tls_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Applies only if `transport` is \"TLS\".\n\nID of the local certificate to send for mutual TLS (mTLS) connections. `null` indicates one-way TLS in which only the server identified by `host` will need to provide a certificate.", "title": "tls_certificate", "_name_": "tls_certificate", "_required_": false}}, "required": ["host"], "title": "SyslogServer", "type": "object", "_attrs_order_": ["host", "transport", "tls_certificate"]}], "maxItems": 2, "title": "syslogservers", "type": "array", "_name_": "syslogservers", "_required_": false}, "syslog_audit": {"description": "The remote syslog server(s) will also receive audit messages.", "title": "syslog_audit", "type": "boolean", "_name_": "syslog_audit", "_required_": false}, "kernel_extra_options": {"description": "Additional kernel boot parameters to pass to the Linux kernel.", "title": "kernel_extra_options", "type": "string", "_name_": "kernel_extra_options", "_required_": false}, "sed_passwd": {"description": "Password REDACTED, "title": "sed_passwd", "type": "string", "_name_": "sed_passwd", "_required_": false}}, "title": "data", "type": "object", "description": "Updated system advanced configuration data.", "_name_": "data", "_required_": true, "_attrs_order_": ["advancedmode", "autotune", "kdump_enabled", "boot_scrub", "consolemenu", "consolemsg", "debugkernel", "fqdn_syslog", "motd", "login_banner", "powerdaemon", "serialconsole", "serialport", "serialspeed", "overprovision", "traceback", "uploadcrash", "anonstats", "sed_user", "sysloglevel", "syslogservers", "syslog_audit", "kernel_extra_options", "sed_passwd"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Placeholder identifier. Not used as there is only one.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "advancedmode": {"description": "Enable advanced mode to show additional configuration options in the web interface.", "title": "advancedmode", "type": "boolean", "_name_": "advancedmode", "_required_": true}, "autotune": {"description": "Execute autotune script which attempts to optimize the system based on the installed hardware.", "title": "autotune", "type": "boolean", "_name_": "autotune", "_required_": true}, "kdump_enabled": {"description": "Enable kernel crash dumps for debugging system crashes.", "title": "kdump_enabled", "type": "boolean", "_name_": "kdump_enabled", "_required_": true}, "boot_scrub": {"description": "Number of days between automatic boot pool scrubs.", "exclusiveMinimum": 0, "title": "boot_scrub", "type": "integer", "_name_": "boot_scrub", "_required_": true}, "consolemenu": {"description": "Enable console menu. Default to standard login in the console if disabled.", "title": "consolemenu", "type": "boolean", "_name_": "consolemenu", "_required_": true}, "consolemsg": {"description": "Deprecated: Please use `consolemsg` attribute in the `system.general` plugin instead.", "title": "consolemsg", "type": "boolean", "_name_": "consolemsg", "_required_": true}, "debugkernel": {"description": "Enable debug kernel for additional logging and debugging capabilities.", "title": "debugkernel", "type": "boolean", "_name_": "debugkernel", "_required_": true}, "fqdn_syslog": {"description": "Include the full domain name in syslog messages.", "title": "fqdn_syslog", "type": "boolean", "_name_": "fqdn_syslog", "_required_": true}, "motd": {"description": "Message of the day displayed after login.", "title": "motd", "type": "string", "_name_": "motd", "_required_": true}, "login_banner": {"description": "Banner message displayed before login prompt.", "maxLength": 4096, "title": "login_banner", "type": "string", "_name_": "login_banner", "_required_": true}, "powerdaemon": {"description": "Enable the power management daemon for automatic power management.", "title": "powerdaemon", "type": "boolean", "_name_": "powerdaemon", "_required_": true}, "serialconsole": {"description": "Enable serial console access.", "title": "serialconsole", "type": "boolean", "_name_": "serialconsole", "_required_": true}, "serialport": {"description": "Serial port device for console access.", "title": "serialport", "type": "string", "_name_": "serialport", "_required_": true}, "anonstats_token REDACTED, "title": "anonstats_token REDACTED, "type": "string", "_name_": "anonstats_token REDACTED, "_required_": true}, "serialspeed": {"description": "Baud rate for serial console communication.", "enum": ["9600", "19200", "38400", "57600", "115200"], "title": "serialspeed", "type": "string", "_name_": "serialspeed", "_required_": true}, "overprovision": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Percentage of SSD overprovisioning to reserve for wear leveling.", "title": "overprovision", "_name_": "overprovision", "_required_": true}, "traceback": {"description": "Enable generation and saving of tracebacks for debugging.", "title": "traceback", "type": "boolean", "_name_": "traceback", "_required_": true}, "uploadcrash": {"description": "Automatically upload crash reports to iXsystems for analysis.", "title": "uploadcrash", "type": "boolean", "_name_": "uploadcrash", "_required_": true}, "anonstats": {"description": "Enable anonymous usage statistics reporting to help improve TrueNAS.", "title": "anonstats", "type": "boolean", "_name_": "anonstats", "_required_": true}, "sed_user": {"description": "SED (Self-Encrypting Drive) user type for drive encryption.", "enum": ["USER", "MASTER"], "title": "sed_user", "type": "string", "_name_": "sed_user", "_required_": true}, "sysloglevel": {"description": "Minimum log level for syslog messages. F_EMERG is most critical, F_DEBUG is least critical.", "enum": ["F_EMERG", "F_ALERT", "F_CRIT", "F_ERR", "F_WARNING", "F_NOTICE", "F_INFO", "F_DEBUG"], "title": "sysloglevel", "type": "string", "_name_": "sysloglevel", "_required_": true}, "syslogservers": {"default": [], "description": "Configurations for up to two remote syslog servers.", "items": [{"additionalProperties": false, "properties": {"host": {"description": "Remote syslog server DNS hostname or IP address.\n\nNonstandard port numbers can be used by appending a colon and port number to the hostname, like mysyslogserver:1928.\n\nPort 514 is used by default for TCP and UDP transports as per RFC3164; port 6514 is used by default for TLS transport as per RFC5425.", "title": "host", "type": "string", "_name_": "host", "_required_": true}, "transport": {"default": "UDP", "description": "Transport Protocol for the remote system log server connection.", "enum": ["UDP", "TCP", "TLS"], "title": "transport", "type": "string", "_name_": "transport", "_required_": false}, "tls_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Applies only if `transport` is \"TLS\".\n\nID of the local certificate to send for mutual TLS (mTLS) connections. `null` indicates one-way TLS in which only the server identified by `host` will need to provide a certificate.", "title": "tls_certificate", "_name_": "tls_certificate", "_required_": false}}, "required": ["host"], "title": "SyslogServer", "type": "object", "_attrs_order_": ["host", "transport", "tls_certificate"]}], "maxItems": 2, "title": "syslogservers", "type": "array", "_name_": "syslogservers", "_required_": false}, "syslog_audit": {"description": "The remote syslog server(s) will also receive audit messages.", "title": "syslog_audit", "type": "boolean", "_name_": "syslog_audit", "_required_": false}, "isolated_gpu_pci_ids": {"description": "List of GPU PCI IDs to isolate from the host system for VM passthrough.", "items": [{"type": "string"}], "title": "isolated_gpu_pci_ids", "type": "array", "_name_": "isolated_gpu_pci_ids", "_required_": true}, "kernel_extra_options": {"description": "Additional kernel boot parameters to pass to the Linux kernel.", "title": "kernel_extra_options", "type": "string", "_name_": "kernel_extra_options", "_required_": true}}, "required": ["id", "advancedmode", "autotune", "kdump_enabled", "boot_scrub", "consolemenu", "consolemsg", "debugkernel", "fqdn_syslog", "motd", "login_banner", "powerdaemon", "serialconsole", "serialport", "anonstats_token REDACTED, "serialspeed", "overprovision", "traceback", "uploadcrash", "anonstats", "sed_user", "sysloglevel", "isolated_gpu_pci_ids", "kernel_extra_options"], "title": "result", "type": "object", "description": "The updated system advanced configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "advancedmode", "autotune", "kdump_enabled", "boot_scrub", "consolemenu", "consolemsg", "debugkernel", "fqdn_syslog", "motd", "login_banner", "powerdaemon", "serialconsole", "serialport", "anonstats_token REDACTED, "serialspeed", "overprovision", "traceback", "uploadcrash", "anonstats", "sed_user", "sysloglevel", "syslogservers", "syslog_audit", "isolated_gpu_pci_ids", "kernel_extra_options"]}]}, "system.advanced.update_gpu_pci_ids": {"description": "`isolated_gpu_pci_ids` is a list of PCI ids which are isolated from host system.", "cli_description": "`isolated_gpu_pci_ids` is a list of PCI ids which are isolated from host system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_ADVANCED_WRITE"], "accepts": [{"description": "List of GPU PCI IDs to isolate for VM passthrough.", "items": [{"type": "string"}], "title": "data", "type": "array", "_name_": "data", "_required_": true}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.general.checkin": {"description": "After UI settings are saved with `rollback_timeout` this method needs to be called within that timeout limit\nto prevent reverting the changes.\n\nThis is to ensure user verifies the changes went as planned and its working.", "cli_description": "After UI settings are saved with `rollback_timeout` this method needs to be called within that timeout limit to prevent reverting the changes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"description": "Returns `null` on successful configuration check-in.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.general.checkin_waiting": {"description": "Determines whether we are waiting user to check in the applied UI settings changes before they are rolled\nback. Returns a number of seconds before the automatic rollback or null if there are no changes pending.", "cli_description": "Determines whether we are waiting user to check in the applied UI settings changes before they are rolled back", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Seconds remaining until automatic rollback. `null` if no rollback is pending.", "title": "result", "_name_": "result", "_required_": true}]}, "system.general.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the system general configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "ui_certificate": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Used to enable HTTPS access to the system. If `ui_certificate` is not configured on boot, it is automatically created by the system.", "title": "ui_certificate", "_name_": "ui_certificate", "_required_": true}, "ui_httpsport": {"description": "HTTPS port for the web UI.", "maximum": 65535, "minimum": 1, "title": "ui_httpsport", "type": "integer", "_name_": "ui_httpsport", "_required_": true}, "ui_httpsredirect": {"description": "When set, makes sure that all HTTP requests are converted to HTTPS requests to better enhance security.", "title": "ui_httpsredirect", "type": "boolean", "_name_": "ui_httpsredirect", "_required_": true}, "ui_httpsprotocols": {"description": "Array of TLS protocol versions enabled for HTTPS connections.", "items": [{"enum": ["TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3"], "type": "string"}], "title": "ui_httpsprotocols", "type": "array", "uniqueItems": true, "_name_": "ui_httpsprotocols", "_required_": true}, "ui_port": {"description": "HTTP port for the web UI.", "maximum": 65535, "minimum": 1, "title": "ui_port", "type": "integer", "_name_": "ui_port", "_required_": true}, "ui_address": {"description": "A list of valid IPv4 addresses which the system will listen on.", "items": [{"type": "string"}], "minItems": 1, "title": "ui_address", "type": "array", "_name_": "ui_address", "_required_": true}, "ui_v6address": {"description": "A list of valid IPv6 addresses which the system will listen on.", "items": [{"type": "string"}], "minItems": 1, "title": "ui_v6address", "type": "array", "_name_": "ui_v6address", "_required_": true}, "ui_allowlist": {"description": "A list of IP addresses and networks that are allow to use API and UI. If this list is empty, then all IP addresses are allowed to use API and UI.", "items": [{"type": "string"}], "title": "ui_allowlist", "type": "array", "_name_": "ui_allowlist", "_required_": true}, "ui_consolemsg": {"description": "Whether to show console messages on the web UI.", "title": "ui_consolemsg", "type": "boolean", "_name_": "ui_consolemsg", "_required_": true}, "ui_x_frame_options": {"description": "X-Frame-Options header policy for web UI security.", "enum": ["SAMEORIGIN", "DENY", "ALLOW_ALL"], "title": "ui_x_frame_options", "type": "string", "_name_": "ui_x_frame_options", "_required_": true}, "kbdmap": {"description": "System keyboard layout mapping.", "title": "kbdmap", "type": "string", "_name_": "kbdmap", "_required_": true}, "timezone": {"description": "System timezone identifier.", "minLength": 1, "title": "timezone", "type": "string", "_name_": "timezone", "_required_": true}, "usage_collection": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether usage data collection is enabled. `null` if not set.", "title": "usage_collection", "_name_": "usage_collection", "_required_": true}, "wizardshown": {"description": "Whether the initial setup wizard has been shown.", "title": "wizardshown", "type": "boolean", "_name_": "wizardshown", "_required_": true}, "usage_collection_is_set": {"description": "Whether the usage collection preference has been explicitly set.", "title": "usage_collection_is_set", "type": "boolean", "_name_": "usage_collection_is_set", "_required_": true}, "ds_auth": {"description": "Controls whether configured Directory Service users that are granted with Privileges are allowed to log in to the Web UI or use TrueNAS API.", "title": "ds_auth", "type": "boolean", "_name_": "ds_auth", "_required_": true}}, "required": ["id", "ui_certificate", "ui_httpsport", "ui_httpsredirect", "ui_httpsprotocols", "ui_port", "ui_address", "ui_v6address", "ui_allowlist", "ui_consolemsg", "ui_x_frame_options", "kbdmap", "timezone", "usage_collection", "wizardshown", "usage_collection_is_set", "ds_auth"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "ui_certificate", "ui_httpsport", "ui_httpsredirect", "ui_httpsprotocols", "ui_port", "ui_address", "ui_v6address", "ui_allowlist", "ui_consolemsg", "ui_x_frame_options", "kbdmap", "timezone", "usage_collection", "wizardshown", "usage_collection_is_set", "ds_auth"]}]}, "system.general.country_choices": {"description": "Return a dictionary whose keys represent the\nISO 3166-1 alpha 2 country code and values represent\nthe English short name (used in ISO 3166/MA)", "cli_description": "Return a dictionary whose keys represent the ISO 3166-1 alpha 2 country code and values represent the English short name (used in ISO 3166/MA)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of country codes and their names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.kbdmap_choices": {"description": "Returns keyboard map choices.", "cli_description": "Returns keyboard map choices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available keyboard layout codes and their descriptive names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.local_url": {"description": "Returns configured local url in the format of protocol://host:port", "cli_description": "Returns configured local url in the format of protocol://host:port", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"description": "The local URL for accessing the web UI.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.general.timezone_choices": {"description": "Returns available timezones", "cli_description": "Returns available timezones", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available timezone identifiers and their descriptive names.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.ui_address_choices": {"description": "Returns network interfaces that have statically configured\nIPv4 address(es). These addresses can be used to bind the UI\nserver.", "cli_description": "Returns network interfaces that have statically configured IPv4 address(es)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available IPv4 addresses and their interface names for UI binding.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.ui_certificate_choices": {"description": "Return available certificates that may be used to\nbind the webserver to when connecting via HTTPS protocol.", "cli_description": "Return available certificates that may be used to bind the webserver to when connecting via HTTPS protocol", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available certificate IDs and their names for UI HTTPS.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.ui_httpsprotocols_choices": {"description": "Returns available HTTPS protocols.", "cli_description": "Returns available HTTPS protocols", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available HTTPS protocol versions and their descriptions.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.ui_restart": {"description": "Restart HTTP server to use latest UI settings.\n\nHTTP server will be restarted after `delay` seconds.", "cli_description": "Restart HTTP server to use latest UI settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_GENERAL_WRITE"], "accepts": [{"default": 3, "description": "How long to wait before the UI is restarted.", "minimum": 0, "title": "delay", "type": "integer", "_name_": "delay", "_required_": false}], "returns": [{"description": "Returns `null` on successful UI restart initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "system.general.ui_v6address_choices": {"description": "Returns network interfaces that have statically configured\nIPv6 address(es). These addresses can be used to bind the UI\nserver.", "cli_description": "Returns network interfaces that have statically configured IPv6 address(es)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available IPv6 addresses and their interface names for UI binding.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "system.general.update": {"description": "Update System General Service Configuration.\n\nUI configuration is not applied automatically. Call `system.general.ui_restart` to apply new UI settings (all\nHTTP connections will be aborted) or specify `ui_restart_delay` (in seconds) to automatically apply them after\nsome small amount of time necessary you might need to receive the response for your settings update request.\n\nIf incorrect UI configuration is applied, you might loss API connectivity and won't be able to fix the settings.\nTo avoid that, specify `rollback_timeout` (in seconds). It will automatically roll back UI configuration to the\npreviously working settings after `rollback_timeout` passes unless you call `system.general.checkin` in case\nthe new settings were correct and no rollback is necessary.", "cli_description": "Update System General Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_GENERAL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"ui_certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Used to enable HTTPS access to the system. If `ui_certificate` is not configured on boot, it is automatically created by the system.", "title": "ui_certificate", "_name_": "ui_certificate", "_required_": false}, "ui_httpsport": {"description": "HTTPS port for the web UI.", "maximum": 65535, "minimum": 1, "title": "ui_httpsport", "type": "integer", "_name_": "ui_httpsport", "_required_": false}, "ui_httpsredirect": {"description": "When set, makes sure that all HTTP requests are converted to HTTPS requests to better enhance security.", "title": "ui_httpsredirect", "type": "boolean", "_name_": "ui_httpsredirect", "_required_": false}, "ui_httpsprotocols": {"description": "Array of TLS protocol versions enabled for HTTPS connections.", "items": [{"enum": ["TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3"], "type": "string"}], "title": "ui_httpsprotocols", "type": "array", "uniqueItems": true, "_name_": "ui_httpsprotocols", "_required_": false}, "ui_port": {"description": "HTTP port for the web UI.", "maximum": 65535, "minimum": 1, "title": "ui_port", "type": "integer", "_name_": "ui_port", "_required_": false}, "ui_address": {"description": "A list of valid IPv4 addresses which the system will listen on.", "items": [{"type": "string"}], "minItems": 1, "title": "ui_address", "type": "array", "_name_": "ui_address", "_required_": false}, "ui_v6address": {"description": "A list of valid IPv6 addresses which the system will listen on.", "items": [{"type": "string"}], "minItems": 1, "title": "ui_v6address", "type": "array", "_name_": "ui_v6address", "_required_": false}, "ui_allowlist": {"description": "A list of IP addresses and networks that are allow to use API and UI. If this list is empty, then all IP addresses are allowed to use API and UI.", "items": [{"type": "string"}], "title": "ui_allowlist", "type": "array", "_name_": "ui_allowlist", "_required_": false}, "ui_consolemsg": {"description": "Whether to show console messages on the web UI.", "title": "ui_consolemsg", "type": "boolean", "_name_": "ui_consolemsg", "_required_": false}, "ui_x_frame_options": {"description": "X-Frame-Options header policy for web UI security.", "enum": ["SAMEORIGIN", "DENY", "ALLOW_ALL"], "title": "ui_x_frame_options", "type": "string", "_name_": "ui_x_frame_options", "_required_": false}, "kbdmap": {"description": "System keyboard layout mapping.", "title": "kbdmap", "type": "string", "_name_": "kbdmap", "_required_": false}, "timezone": {"description": "System timezone identifier.", "minLength": 1, "title": "timezone", "type": "string", "_name_": "timezone", "_required_": false}, "usage_collection": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether usage data collection is enabled. `null` if not set.", "title": "usage_collection", "_name_": "usage_collection", "_required_": false}, "ds_auth": {"description": "Controls whether configured Directory Service users that are granted with Privileges are allowed to log in to the Web UI or use TrueNAS API.", "title": "ds_auth", "type": "boolean", "_name_": "ds_auth", "_required_": false}, "ui_restart_delay": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Delay in seconds before restarting the UI after configuration changes. `null` to use default.", "title": "ui_restart_delay", "_name_": "ui_restart_delay", "_required_": false}, "rollback_timeout": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Timeout in seconds for automatic rollback of UI changes. `null` for no timeout.", "title": "rollback_timeout", "_name_": "rollback_timeout", "_required_": false}}, "title": "general_settings", "type": "object", "description": "SystemGeneralUpdateArgs parameters.", "_name_": "general_settings", "_required_": true, "_attrs_order_": ["ui_certificate", "ui_httpsport", "ui_httpsredirect", "ui_httpsprotocols", "ui_port", "ui_address", "ui_v6address", "ui_allowlist", "ui_consolemsg", "ui_x_frame_options", "kbdmap", "timezone", "usage_collection", "ds_auth", "ui_restart_delay", "rollback_timeout"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the system general configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "ui_certificate": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Used to enable HTTPS access to the system. If `ui_certificate` is not configured on boot, it is automatically created by the system.", "title": "ui_certificate", "_name_": "ui_certificate", "_required_": true}, "ui_httpsport": {"description": "HTTPS port for the web UI.", "maximum": 65535, "minimum": 1, "title": "ui_httpsport", "type": "integer", "_name_": "ui_httpsport", "_required_": true}, "ui_httpsredirect": {"description": "When set, makes sure that all HTTP requests are converted to HTTPS requests to better enhance security.", "title": "ui_httpsredirect", "type": "boolean", "_name_": "ui_httpsredirect", "_required_": true}, "ui_httpsprotocols": {"description": "Array of TLS protocol versions enabled for HTTPS connections.", "items": [{"enum": ["TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3"], "type": "string"}], "title": "ui_httpsprotocols", "type": "array", "uniqueItems": true, "_name_": "ui_httpsprotocols", "_required_": true}, "ui_port": {"description": "HTTP port for the web UI.", "maximum": 65535, "minimum": 1, "title": "ui_port", "type": "integer", "_name_": "ui_port", "_required_": true}, "ui_address": {"description": "A list of valid IPv4 addresses which the system will listen on.", "items": [{"type": "string"}], "minItems": 1, "title": "ui_address", "type": "array", "_name_": "ui_address", "_required_": true}, "ui_v6address": {"description": "A list of valid IPv6 addresses which the system will listen on.", "items": [{"type": "string"}], "minItems": 1, "title": "ui_v6address", "type": "array", "_name_": "ui_v6address", "_required_": true}, "ui_allowlist": {"description": "A list of IP addresses and networks that are allow to use API and UI. If this list is empty, then all IP addresses are allowed to use API and UI.", "items": [{"type": "string"}], "title": "ui_allowlist", "type": "array", "_name_": "ui_allowlist", "_required_": true}, "ui_consolemsg": {"description": "Whether to show console messages on the web UI.", "title": "ui_consolemsg", "type": "boolean", "_name_": "ui_consolemsg", "_required_": true}, "ui_x_frame_options": {"description": "X-Frame-Options header policy for web UI security.", "enum": ["SAMEORIGIN", "DENY", "ALLOW_ALL"], "title": "ui_x_frame_options", "type": "string", "_name_": "ui_x_frame_options", "_required_": true}, "kbdmap": {"description": "System keyboard layout mapping.", "title": "kbdmap", "type": "string", "_name_": "kbdmap", "_required_": true}, "timezone": {"description": "System timezone identifier.", "minLength": 1, "title": "timezone", "type": "string", "_name_": "timezone", "_required_": true}, "usage_collection": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether usage data collection is enabled. `null` if not set.", "title": "usage_collection", "_name_": "usage_collection", "_required_": true}, "wizardshown": {"description": "Whether the initial setup wizard has been shown.", "title": "wizardshown", "type": "boolean", "_name_": "wizardshown", "_required_": true}, "usage_collection_is_set": {"description": "Whether the usage collection preference has been explicitly set.", "title": "usage_collection_is_set", "type": "boolean", "_name_": "usage_collection_is_set", "_required_": true}, "ds_auth": {"description": "Controls whether configured Directory Service users that are granted with Privileges are allowed to log in to the Web UI or use TrueNAS API.", "title": "ds_auth", "type": "boolean", "_name_": "ds_auth", "_required_": true}}, "required": ["id", "ui_certificate", "ui_httpsport", "ui_httpsredirect", "ui_httpsprotocols", "ui_port", "ui_address", "ui_v6address", "ui_allowlist", "ui_consolemsg", "ui_x_frame_options", "kbdmap", "timezone", "usage_collection", "wizardshown", "usage_collection_is_set", "ds_auth"], "title": "result", "type": "object", "description": "The updated system general configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "ui_certificate", "ui_httpsport", "ui_httpsredirect", "ui_httpsprotocols", "ui_port", "ui_address", "ui_v6address", "ui_allowlist", "ui_consolemsg", "ui_x_frame_options", "kbdmap", "timezone", "usage_collection", "wizardshown", "usage_collection_is_set", "ds_auth"]}]}, "system.global.id": {"description": "Retrieve a 128 bit hexadecimal UUID value unique for each TrueNAS system.", "cli_description": "Retrieve a 128 bit hexadecimal UUID value unique for each TrueNAS system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Unique system identifier.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "system.ntpserver.create": {"description": "Add an NTP Server.\n\n`address` specifies the hostname/IP address of the NTP server.\n\n`burst` when enabled makes sure that if server is reachable, sends a burst of eight packets instead of one.\nThis is designed to improve timekeeping quality with the server command.\n\n`iburst` when enabled speeds up the initial synchronization, taking seconds rather than minutes.\n\n`prefer` marks the specified server as preferred. When all other things are equal, this host is chosen\nfor synchronization acquisition with the server command. It is recommended that they be used for servers with\ntime monitoring hardware.\n\n`minpoll` is minimum polling time in seconds. It must be a power of 2 and less than `maxpoll`.\n\n`maxpoll` is maximum polling time in seconds. It must be a power of 2 and greater than `minpoll`.\n\n`force` when enabled forces the addition of NTP server even if it is currently unreachable.", "cli_description": "Add an NTP Server", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "burst": {"default": false, "description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"default": true, "description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"default": false, "description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"default": 6, "description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"default": 10, "description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}, "force": {"default": false, "description": "Force creation even if the server is unreachable.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "required": ["address"], "title": "ntp_server_create", "type": "object", "description": "Configuration for creating a new NTP server.", "_name_": "ntp_server_create", "_required_": true, "_attrs_order_": ["address", "burst", "iburst", "prefer", "minpoll", "maxpoll", "force"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NTP server configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "burst": {"default": false, "description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"default": true, "description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"default": false, "description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"default": 6, "description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"default": 10, "description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}}, "required": ["id", "address"], "title": "result", "type": "object", "description": "The newly created NTP server configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "address", "burst", "iburst", "prefer", "minpoll", "maxpoll"]}]}, "system.ntpserver.delete": {"description": "Delete NTP server of `id`.", "cli_description": "Delete NTP server of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_WRITE"], "accepts": [{"description": "ID of the NTP server to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Always returns true on successful NTP server deletion.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "system.ntpserver.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_READ", "NETWORK_GENERAL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NTP server configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "burst": {"default": false, "description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"default": true, "description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"default": false, "description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"default": 6, "description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"default": 10, "description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}}, "required": ["id", "address"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "address", "burst", "iburst", "prefer", "minpoll", "maxpoll"]}]}, "system.ntpserver.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_READ", "NETWORK_GENERAL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NTP server configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": false}, "burst": {"description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}}, "title": "NTPServerQueryResultItem", "type": "object", "_attrs_order_": ["id", "address", "burst", "iburst", "prefer", "minpoll", "maxpoll"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NTP server configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": false}, "burst": {"description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}}, "title": "NTPServerQueryResultItem", "type": "object", "_attrs_order_": ["id", "address", "burst", "iburst", "prefer", "minpoll", "maxpoll"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "system.ntpserver.update": {"description": "Update NTP server of `id`.", "cli_description": "Update NTP server of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["NETWORK_GENERAL_WRITE"], "accepts": [{"description": "ID of the NTP server to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": false}, "burst": {"description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}, "force": {"description": "Force creation even if the server is unreachable.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "ntp_server_update", "type": "object", "description": "Updated configuration for the NTP server.", "_name_": "ntp_server_update", "_required_": true, "_attrs_order_": ["address", "burst", "iburst", "prefer", "minpoll", "maxpoll", "force"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the NTP server configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "address": {"description": "Hostname or IP address of the NTP server.", "title": "address", "type": "string", "_name_": "address", "_required_": true}, "burst": {"default": false, "description": "Send a burst of packets when the server is reachable.", "title": "burst", "type": "boolean", "_name_": "burst", "_required_": false}, "iburst": {"default": true, "description": "Send a burst of packets when the server is unreachable.", "title": "iburst", "type": "boolean", "_name_": "iburst", "_required_": false}, "prefer": {"default": false, "description": "Mark this server as preferred for time synchronization.", "title": "prefer", "type": "boolean", "_name_": "prefer", "_required_": false}, "minpoll": {"default": 6, "description": "Minimum polling interval (log2 seconds).", "title": "minpoll", "type": "integer", "_name_": "minpoll", "_required_": false}, "maxpoll": {"default": 10, "description": "Maximum polling interval (log2 seconds).", "title": "maxpoll", "type": "integer", "_name_": "maxpoll", "_required_": false}}, "required": ["id", "address"], "title": "result", "type": "object", "description": "The updated NTP server configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "address", "burst", "iburst", "prefer", "minpoll", "maxpoll"]}]}, "system.reboot.info": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"boot_id": {"description": "Unique identifier for the current boot session.", "title": "boot_id", "type": "string", "_name_": "boot_id", "_required_": true}, "reboot_required_reasons": {"description": "Array of reasons why a system reboot is required.", "items": [{"additionalProperties": false, "properties": {"code": {"description": "Code identifying the reason for required reboot.", "title": "code", "type": "string", "_name_": "code", "_required_": true}, "reason": {"description": "Human-readable description of why a reboot is required.", "title": "reason", "type": "string", "_name_": "reason", "_required_": true}}, "required": ["code", "reason"], "title": "RebootRequiredReason", "type": "object", "_attrs_order_": ["code", "reason"]}], "title": "reboot_required_reasons", "type": "array", "_name_": "reboot_required_reasons", "_required_": true}}, "required": ["boot_id", "reboot_required_reasons"], "title": "result", "type": "object", "description": "Information about the current boot session and reboot requirements.", "_name_": "result", "_required_": true, "_attrs_order_": ["boot_id", "reboot_required_reasons"]}]}, "system.security.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_SECURITY_READ", "SYSTEM_SECURITY_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the system security configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enable_fips": {"description": "When set, enables FIPS mode. ", "title": "enable_fips", "type": "boolean", "_name_": "enable_fips", "_required_": true}, "enable_gpos_stig": {"description": "When set, enables compatibility with the General Purpose Operating System STIG. ", "title": "enable_gpos_stig", "type": "boolean", "_name_": "enable_gpos_stig", "_required_": true}, "min_password REDACTED, "type": "integer"}, {"type": "null"}], "default": null, "description": "The number of days local users will have to wait before they will be allowed to change password REDACTED, "title": "min_password REDACTED, "_name_": "min_password REDACTED, "_required_": false}, "max_password REDACTED, "minimum": 7, "type": "integer"}, {"type": "null"}], "default": null, "description": "The number of days after which a password REDACTED, and password REDACTED, "title": "max_password REDACTED, "_name_": "max_password REDACTED, "_required_": false}, "password REDACTED, "LOWER", "NUMBER", "SPECIAL"], "type": "string"}], "type": "array", "uniqueItems": true}, {"type": "null"}], "default": null, "description": "The password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "min_password REDACTED, "type": "integer"}, {"type": "null"}], "default": null, "description": "The minimum length of password REDACTED, "title": "min_password REDACTED, "_name_": "min_password REDACTED, "_required_": false}, "password REDACTED, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "The number of password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}}, "required": ["id", "enable_fips", "enable_gpos_stig"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enable_fips", "enable_gpos_stig", "min_password REDACTED, "max_password REDACTED, "password REDACTED, "min_password REDACTED, "password REDACTED}]}, "system.security.update": {"description": "Update System Security Service Configuration.\n\nThis method is used to change the FIPS, STIG, and local account\npolicies for TrueNAS Enterprise. These features are not\navailable in community editions of TrueNAS.", "cli_description": "Update System Security Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_SECURITY_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enable_fips": {"description": "When set, enables FIPS mode. ", "title": "enable_fips", "type": "boolean", "_name_": "enable_fips", "_required_": false}, "enable_gpos_stig": {"description": "When set, enables compatibility with the General Purpose Operating System STIG. ", "title": "enable_gpos_stig", "type": "boolean", "_name_": "enable_gpos_stig", "_required_": false}, "min_password REDACTED, "type": "integer"}, {"type": "null"}], "description": "The number of days local users will have to wait before they will be allowed to change password REDACTED, "title": "min_password REDACTED, "_name_": "min_password REDACTED, "_required_": false}, "max_password REDACTED, "minimum": 7, "type": "integer"}, {"type": "null"}], "description": "The number of days after which a password REDACTED, and password REDACTED, "title": "max_password REDACTED, "_name_": "max_password REDACTED, "_required_": false}, "password REDACTED, "LOWER", "NUMBER", "SPECIAL"], "type": "string"}], "type": "array", "uniqueItems": true}, {"type": "null"}], "description": "The password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "min_password REDACTED, "type": "integer"}, {"type": "null"}], "description": "The minimum length of password REDACTED, "title": "min_password REDACTED, "_name_": "min_password REDACTED, "_required_": false}, "password REDACTED, "minimum": 1, "type": "integer"}, {"type": "null"}], "description": "The number of password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}}, "title": "system_security_update", "type": "object", "description": "SystemSecurityUpdateArgs parameters.", "_name_": "system_security_update", "_required_": true, "_attrs_order_": ["enable_fips", "enable_gpos_stig", "min_password REDACTED, "max_password REDACTED, "password REDACTED, "min_password REDACTED, "password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the system security configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enable_fips": {"description": "When set, enables FIPS mode. ", "title": "enable_fips", "type": "boolean", "_name_": "enable_fips", "_required_": true}, "enable_gpos_stig": {"description": "When set, enables compatibility with the General Purpose Operating System STIG. ", "title": "enable_gpos_stig", "type": "boolean", "_name_": "enable_gpos_stig", "_required_": true}, "min_password REDACTED, "type": "integer"}, {"type": "null"}], "default": null, "description": "The number of days local users will have to wait before they will be allowed to change password REDACTED, "title": "min_password REDACTED, "_name_": "min_password REDACTED, "_required_": false}, "max_password REDACTED, "minimum": 7, "type": "integer"}, {"type": "null"}], "default": null, "description": "The number of days after which a password REDACTED, and password REDACTED, "title": "max_password REDACTED, "_name_": "max_password REDACTED, "_required_": false}, "password REDACTED, "LOWER", "NUMBER", "SPECIAL"], "type": "string"}], "type": "array", "uniqueItems": true}, {"type": "null"}], "default": null, "description": "The password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "min_password REDACTED, "type": "integer"}, {"type": "null"}], "default": null, "description": "The minimum length of password REDACTED, "title": "min_password REDACTED, "_name_": "min_password REDACTED, "_required_": false}, "password REDACTED, "minimum": 1, "type": "integer"}, {"type": "null"}], "default": null, "description": "The number of password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}}, "required": ["id", "enable_fips", "enable_gpos_stig"], "title": "result", "type": "object", "description": "The updated system security configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enable_fips", "enable_gpos_stig", "min_password REDACTED, "max_password REDACTED, "password REDACTED, "min_password REDACTED, "password REDACTED}]}, "system.security.info.fips_available": {"description": "Returns a boolean identifying whether FIPS mode may be toggled on this system", "cli_description": "Returns a boolean identifying whether FIPS mode may be toggled on this system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_SECURITY_READ", "SYSTEM_SECURITY_WRITE"], "accepts": [], "returns": [{"description": "Whether FIPS mode is available on this system.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "system.security.info.fips_enabled": {"description": "Returns a boolean identifying whether FIPS mode has been enabled on this system", "cli_description": "Returns a boolean identifying whether FIPS mode has been enabled on this system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_SECURITY_READ", "SYSTEM_SECURITY_WRITE"], "accepts": [], "returns": [{"description": "Whether FIPS mode is currently enabled on this system.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "systemdataset.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the system dataset configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool": {"description": "Name of the pool hosting the system dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}, "pool_set": {"description": "Whether a pool has been explicitly set for the system dataset.", "title": "pool_set", "type": "boolean", "_name_": "pool_set", "_required_": true}, "uuid": {"description": "UUID of the system dataset.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}, "basename": {"description": "Base name of the system dataset.", "title": "basename", "type": "string", "_name_": "basename", "_required_": true}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path to the system dataset. `null` if not mounted.", "title": "path", "_name_": "path", "_required_": true}}, "required": ["id", "pool", "pool_set", "uuid", "basename", "path"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "pool", "pool_set", "uuid", "basename", "path"]}]}, "systemdataset.pool_choices": {"description": "Retrieve pool choices which can be used for configuring system dataset.", "cli_description": "Retrieve pool choices which can be used for configuring system dataset", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["DATASET_READ", "DATASET_WRITE", "POOL_READ", "POOL_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": true, "description": "Include the currently set pool in the result.", "title": "include_current_pool", "type": "boolean", "_name_": "include_current_pool", "_required_": false}], "returns": [{"additionalProperties": {"type": "string"}, "description": "Names of pools that can be used for configuring system dataset.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "systemdataset.update": {"description": "Update System Dataset Service Configuration.", "cli_description": "Update System Dataset Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["DATASET_WRITE", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The name of a valid pool configured in the system to host the system dataset.", "title": "pool", "_name_": "pool", "_required_": false}, "pool_exclude": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The name of a pool to not place the system dataset on if `pool` is not provided.", "title": "pool_exclude", "_name_": "pool_exclude", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for the system dataset.", "_name_": "data", "_required_": true, "_attrs_order_": ["pool", "pool_exclude"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the system dataset configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool": {"description": "Name of the pool hosting the system dataset.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}, "pool_set": {"description": "Whether a pool has been explicitly set for the system dataset.", "title": "pool_set", "type": "boolean", "_name_": "pool_set", "_required_": true}, "uuid": {"description": "UUID of the system dataset.", "title": "uuid", "type": "string", "_name_": "uuid", "_required_": true}, "basename": {"description": "Base name of the system dataset.", "title": "basename", "type": "string", "_name_": "basename", "_required_": true}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Filesystem path to the system dataset. `null` if not mounted.", "title": "path", "_name_": "path", "_required_": true}}, "required": ["id", "pool", "pool_set", "uuid", "basename", "path"], "title": "result", "type": "object", "description": "The updated system dataset configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "pool", "pool_set", "uuid", "basename", "path"]}]}, "tn_connect.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "TRUENAS_CONNECT_READ", "TRUENAS_CONNECT_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the TrueNAS Connect configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether TrueNAS Connect service is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "registration_details": {"description": "Object containing registration information and credential REDACTED, "title": "registration_details", "type": "object", "_name_": "registration_details", "_required_": true}, "ips": {"description": "Array of IP addresses that TrueNAS Connect will bind to and advertise.", "items": [{"minLength": 1, "type": "string"}], "title": "ips", "type": "array", "_name_": "ips", "_required_": true}, "interfaces": {"description": "Array of network interface names that TrueNAS Connect will use.", "items": [{"type": "string"}], "title": "interfaces", "type": "array", "_name_": "interfaces", "_required_": true}, "interfaces_ips": {"description": "Array of IP addresses associated with the selected interfaces.", "items": [{"type": "string"}], "title": "interfaces_ips", "type": "array", "_name_": "interfaces_ips", "_required_": true}, "use_all_interfaces": {"description": "Whether to automatically use all available network interfaces.", "title": "use_all_interfaces", "type": "boolean", "_name_": "use_all_interfaces", "_required_": true}, "status": {"description": "Current operational status of the TrueNAS Connect service.", "minLength": 1, "title": "status", "type": "string", "_name_": "status", "_required_": true}, "status_reason": {"description": "Detailed explanation of the current status, including any error conditions.", "minLength": 1, "title": "status_reason", "type": "string", "_name_": "status_reason", "_required_": true}, "certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the SSL certificate used for TrueNAS Connect communications. `null` if using default.", "title": "certificate", "_name_": "certificate", "_required_": true}, "account_service_base_url": {"description": "Base URL for the TrueNAS Connect account service API.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "account_service_base_url", "type": "string", "_name_": "account_service_base_url", "_required_": true}, "leca_service_base_url": {"description": "Base URL for the Let's Encrypt Certificate Authority service used by TrueNAS Connect.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "leca_service_base_url", "type": "string", "_name_": "leca_service_base_url", "_required_": true}, "tnc_base_url": {"description": "Base URL for the TrueNAS Connect service.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "tnc_base_url", "type": "string", "_name_": "tnc_base_url", "_required_": true}, "heartbeat_url": {"description": "URL endpoint for sending heartbeat signals to maintain connection status.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "heartbeat_url", "type": "string", "_name_": "heartbeat_url", "_required_": true}}, "required": ["id", "enabled", "registration_details", "ips", "interfaces", "interfaces_ips", "use_all_interfaces", "status", "status_reason", "certificate", "account_service_base_url", "leca_service_base_url", "tnc_base_url", "heartbeat_url"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "registration_details", "ips", "interfaces", "interfaces_ips", "use_all_interfaces", "status", "status_reason", "certificate", "account_service_base_url", "leca_service_base_url", "tnc_base_url", "heartbeat_url"]}]}, "tn_connect.generate_claim_token REDACTED, a token REDACTED, "cli_description": "Generate a claim token REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["TRUENAS_CONNECT_WRITE"], "accepts": [], "returns": [{"description": "Generated claim token REDACTED, "minLength": 1, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "tn_connect.get_registration_uri": {"description": "Return the registration URI for TrueNAS Connect.\n\nBefore this endpoint is called, tn_connect must be enabled and a claim token REDACTED, "cli_description": "Return the registration URI for TrueNAS Connect", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "TRUENAS_CONNECT_READ", "TRUENAS_CONNECT_WRITE"], "accepts": [], "returns": [{"description": "Registration URI for connecting this TrueNAS system to TrueNAS Connect.", "minLength": 1, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "tn_connect.ip_choices": {"description": "Returns IP choices which can be used with TrueNAS Connect.", "cli_description": "Returns IP choices which can be used with TrueNAS Connect", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "TRUENAS_CONNECT_READ", "TRUENAS_CONNECT_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available IP addresses and their associated interface descriptions.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "tn_connect.update": {"description": "Update TrueNAS Connect configuration.", "cli_description": "Update TrueNAS Connect configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["TRUENAS_CONNECT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether to enable the TrueNAS Connect service.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "ips": {"description": "Array of IP addresses that TrueNAS Connect should bind to and advertise.", "items": [{"anyOf": [{"const": "", "enum": [""], "type": "string"}, {"type": "string"}]}], "title": "ips", "type": "array", "_name_": "ips", "_required_": false}, "interfaces": {"description": "Array of network interface names that TrueNAS Connect should use.", "items": [{"type": "string"}], "title": "interfaces", "type": "array", "_name_": "interfaces", "_required_": false}, "use_all_interfaces": {"description": "Whether to automatically use all available network interfaces.", "title": "use_all_interfaces", "type": "boolean", "_name_": "use_all_interfaces", "_required_": false}}, "title": "tn_connect_update", "type": "object", "description": "TrueNASConnectUpdateArgs parameters.", "_name_": "tn_connect_update", "_required_": true, "_attrs_order_": ["enabled", "ips", "interfaces", "use_all_interfaces"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the TrueNAS Connect configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "enabled": {"description": "Whether TrueNAS Connect service is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}, "registration_details": {"description": "Object containing registration information and credential REDACTED, "title": "registration_details", "type": "object", "_name_": "registration_details", "_required_": true}, "ips": {"description": "Array of IP addresses that TrueNAS Connect will bind to and advertise.", "items": [{"minLength": 1, "type": "string"}], "title": "ips", "type": "array", "_name_": "ips", "_required_": true}, "interfaces": {"description": "Array of network interface names that TrueNAS Connect will use.", "items": [{"type": "string"}], "title": "interfaces", "type": "array", "_name_": "interfaces", "_required_": true}, "interfaces_ips": {"description": "Array of IP addresses associated with the selected interfaces.", "items": [{"type": "string"}], "title": "interfaces_ips", "type": "array", "_name_": "interfaces_ips", "_required_": true}, "use_all_interfaces": {"description": "Whether to automatically use all available network interfaces.", "title": "use_all_interfaces", "type": "boolean", "_name_": "use_all_interfaces", "_required_": true}, "status": {"description": "Current operational status of the TrueNAS Connect service.", "minLength": 1, "title": "status", "type": "string", "_name_": "status", "_required_": true}, "status_reason": {"description": "Detailed explanation of the current status, including any error conditions.", "minLength": 1, "title": "status_reason", "type": "string", "_name_": "status_reason", "_required_": true}, "certificate": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "ID of the SSL certificate used for TrueNAS Connect communications. `null` if using default.", "title": "certificate", "_name_": "certificate", "_required_": true}, "account_service_base_url": {"description": "Base URL for the TrueNAS Connect account service API.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "account_service_base_url", "type": "string", "_name_": "account_service_base_url", "_required_": true}, "leca_service_base_url": {"description": "Base URL for the Let's Encrypt Certificate Authority service used by TrueNAS Connect.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "leca_service_base_url", "type": "string", "_name_": "leca_service_base_url", "_required_": true}, "tnc_base_url": {"description": "Base URL for the TrueNAS Connect service.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "tnc_base_url", "type": "string", "_name_": "tnc_base_url", "_required_": true}, "heartbeat_url": {"description": "URL endpoint for sending heartbeat signals to maintain connection status.", "format": "uri", "maxLength": 2083, "minLength": 1, "title": "heartbeat_url", "type": "string", "_name_": "heartbeat_url", "_required_": true}}, "required": ["id", "enabled", "registration_details", "ips", "interfaces", "interfaces_ips", "use_all_interfaces", "status", "status_reason", "certificate", "account_service_base_url", "leca_service_base_url", "tnc_base_url", "heartbeat_url"], "title": "result", "type": "object", "description": "The updated TrueNAS Connect configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "enabled", "registration_details", "ips", "interfaces", "interfaces_ips", "use_all_interfaces", "status", "status_reason", "certificate", "account_service_base_url", "leca_service_base_url", "tnc_base_url", "heartbeat_url"]}]}, "truecommand.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "TRUECOMMAND_READ", "TRUECOMMAND_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the TrueCommand configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "api_key REDACTED}, {"type": "null"}], "description": "API key for authenticating with TrueCommand services. `null` if not configured.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": true}, "status": {"description": "Current connection status with TrueCommand service.", "enum": ["CONNECTED", "CONNECTING", "DISABLED", "FAILED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "status_reason": {"description": "Explanation of the current TrueCommand connection status.", "enum": ["Truecommand service is connected.", "Pending Confirmation From iX Portal for Truecommand API Key.", "Truecommand service is disabled.", "Truecommand API Key Disabled by iX Portal.", "Waiting for connection from Truecommand."], "title": "status_reason", "type": "string", "_name_": "status_reason", "_required_": true}, "remote_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL of the connected TrueCommand instance. `null` if not connected.", "title": "remote_url", "_name_": "remote_url", "_required_": true}, "remote_ip_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address of the connected TrueCommand instance. `null` if not connected.", "title": "remote_ip_address", "_name_": "remote_ip_address", "_required_": true}, "enabled": {"description": "Whether TrueCommand integration is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}}, "required": ["id", "api_key REDACTED, "status", "status_reason", "remote_url", "remote_ip_address", "enabled"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "api_key REDACTED, "status", "status_reason", "remote_url", "remote_ip_address", "enabled"]}]}, "truecommand.update": {"description": "Update Truecommand service settings.\n\n`api_key REDACTED, "cli_description": "Update Truecommand service settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["TRUECOMMAND_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"enabled": {"description": "Whether to enable TrueCommand integration.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "api_key REDACTED, "minLength": 16, "type": "string"}, {"type": "null"}], "description": "16-character API key for TrueCommand authentication. `null` to disable integration.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": false}}, "title": "truecommand_update", "type": "object", "description": "TruecommandUpdateArgs parameters.", "_name_": "truecommand_update", "_required_": true, "_attrs_order_": ["enabled", "api_key REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the TrueCommand configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "api_key REDACTED}, {"type": "null"}], "description": "API key for authenticating with TrueCommand services. `null` if not configured.", "title": "api_key REDACTED, "_name_": "api_key REDACTED, "_required_": true}, "status": {"description": "Current connection status with TrueCommand service.", "enum": ["CONNECTED", "CONNECTING", "DISABLED", "FAILED"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "status_reason": {"description": "Explanation of the current TrueCommand connection status.", "enum": ["Truecommand service is connected.", "Pending Confirmation From iX Portal for Truecommand API Key.", "Truecommand service is disabled.", "Truecommand API Key Disabled by iX Portal.", "Waiting for connection from Truecommand."], "title": "status_reason", "type": "string", "_name_": "status_reason", "_required_": true}, "remote_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL of the connected TrueCommand instance. `null` if not connected.", "title": "remote_url", "_name_": "remote_url", "_required_": true}, "remote_ip_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IP address of the connected TrueCommand instance. `null` if not connected.", "title": "remote_ip_address", "_name_": "remote_ip_address", "_required_": true}, "enabled": {"description": "Whether TrueCommand integration is enabled.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": true}}, "required": ["id", "api_key REDACTED, "status", "status_reason", "remote_url", "remote_ip_address", "enabled"], "title": "result", "type": "object", "description": "The updated TrueCommand configuration with current connection status.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "api_key REDACTED, "status", "status_reason", "remote_url", "remote_ip_address", "enabled"]}]}, "truenas.accept_eula": {"description": "Accept TrueNAS EULA.", "cli_description": "Accept TrueNAS EULA", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["FULL_ADMIN"], "accepts": [], "returns": [{"description": "Returns `null` on successful EULA acceptance.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "truenas.get_chassis_hardware": {"description": "Returns what type of hardware this is, detected from dmidecode.", "cli_description": "Returns what type of hardware this is, detected from dmidecode", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Hardware chassis model identifier for this TrueNAS system.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "truenas.get_eula": {"description": "Returns the TrueNAS End-User License Agreement (EULA).", "cli_description": "Returns the TrueNAS End-User License Agreement (EULA)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Full text of the End User License Agreement. `null` if no EULA is required.", "title": "result", "_name_": "result", "_required_": true}]}, "truenas.is_eula_accepted": {"description": "Returns whether the EULA is accepted or not.", "cli_description": "Returns whether the EULA is accepted or not", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Whether the End User License Agreement has been formally accepted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "truenas.is_ix_hardware": {"description": "Return a boolean value on whether this is hardware that iXsystems sells.", "cli_description": "Return a boolean value on whether this is hardware that iXsystems sells", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Whether this system is running on iXsystems hardware.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "truenas.is_production": {"description": "Returns if system is marked as production.", "cli_description": "Returns if system is marked as production", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Whether this TrueNAS system is configured for production use.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "truenas.managed_by_truecommand": {"description": "Returns whether TrueNAS is being managed by TrueCommand", "cli_description": "Returns whether TrueNAS is being managed by TrueCommand", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"description": "Whether this TrueNAS system is currently managed by TrueCommand.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "truenas.set_production": {"description": "Sets system production state and optionally sends initial debug.", "cli_description": "Sets system production state and optionally sends initial debug", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["FULL_ADMIN"], "accepts": [{"description": "Whether to configure the system for production use.", "title": "production", "type": "boolean", "_name_": "production", "_required_": true}, {"default": false, "description": "Whether to attach debug information when transitioning to production mode.", "title": "attach_debug", "type": "boolean", "_name_": "attach_debug", "_required_": false}], "returns": [{"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Result object containing production configuration details. `null` if transition failed.", "title": "result", "_name_": "result", "_required_": true}]}, "tunable.create": {"description": "Create a tunable.", "cli_description": "Create a tunable", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_TUNABLE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"type": {"default": "SYSCTL", "description": "* `SYSCTL`: `var` is a sysctl name (e.g. `kernel.watchdog`) and `value` is its corresponding value (e.g. `0`).\n* `UDEV`: `var` is a udev rules file name (e.g. `10-disable-usb`, `.rules` suffix will be appended automatically) and `value` is its contents (e.g. `BUS==\"usb\", OPTIONS+=\"ignore_device\"`).\n* `ZFS`: `var` is a ZFS kernel module parameter name (e.g. `zfs_dirty_data_max_max`) and `value` is its value (e.g. `783091712`).", "enum": ["SYSCTL", "UDEV", "ZFS"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "var": {"description": "Name or identifier of the system parameter to tune.", "title": "var", "type": "string", "_name_": "var", "_required_": true}, "value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"default": true, "description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"default": true, "description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}}, "required": ["var", "value"], "title": "data", "type": "object", "description": "Configuration for creating a new system tunable.", "_name_": "data", "_required_": true, "_attrs_order_": ["type", "var", "value", "comment", "enabled", "update_initramfs"]}], "returns": [{"additionalProperties": false, "properties": {"type": {"default": "SYSCTL", "description": "* `SYSCTL`: `var` is a sysctl name (e.g. `kernel.watchdog`) and `value` is its corresponding value (e.g. `0`).\n* `UDEV`: `var` is a udev rules file name (e.g. `10-disable-usb`, `.rules` suffix will be appended automatically) and `value` is its contents (e.g. `BUS==\"usb\", OPTIONS+=\"ignore_device\"`).\n* `ZFS`: `var` is a ZFS kernel module parameter name (e.g. `zfs_dirty_data_max_max`) and `value` is its value (e.g. `783091712`).", "enum": ["SYSCTL", "UDEV", "ZFS"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "var": {"description": "Name or identifier of the system parameter to tune.", "title": "var", "type": "string", "_name_": "var", "_required_": true}, "value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"default": true, "description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"default": true, "description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}, "id": {"description": "Unique identifier for the tunable configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "orig_value": {"description": "Original system value of the parameter before this tunable was applied.", "title": "orig_value", "type": "string", "_name_": "orig_value", "_required_": true}}, "required": ["var", "value", "id", "orig_value"], "title": "result", "type": "object", "description": "The newly created tunable configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "var", "value", "comment", "enabled", "update_initramfs", "id", "orig_value"]}]}, "tunable.delete": {"description": "Delete Tunable of `id`.", "cli_description": "Delete Tunable of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_TUNABLE_WRITE"], "accepts": [{"description": "ID of the tunable to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful tunable deletion.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "tunable.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_TUNABLE_READ", "SYSTEM_TUNABLE_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"type": {"default": "SYSCTL", "description": "* `SYSCTL`: `var` is a sysctl name (e.g. `kernel.watchdog`) and `value` is its corresponding value (e.g. `0`).\n* `UDEV`: `var` is a udev rules file name (e.g. `10-disable-usb`, `.rules` suffix will be appended automatically) and `value` is its contents (e.g. `BUS==\"usb\", OPTIONS+=\"ignore_device\"`).\n* `ZFS`: `var` is a ZFS kernel module parameter name (e.g. `zfs_dirty_data_max_max`) and `value` is its value (e.g. `783091712`).", "enum": ["SYSCTL", "UDEV", "ZFS"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "var": {"description": "Name or identifier of the system parameter to tune.", "title": "var", "type": "string", "_name_": "var", "_required_": true}, "value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"default": true, "description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"default": true, "description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}, "id": {"description": "Unique identifier for the tunable configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "orig_value": {"description": "Original system value of the parameter before this tunable was applied.", "title": "orig_value", "type": "string", "_name_": "orig_value", "_required_": true}}, "required": ["var", "value", "id", "orig_value"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "var", "value", "comment", "enabled", "update_initramfs", "id", "orig_value"]}]}, "tunable.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_TUNABLE_READ", "SYSTEM_TUNABLE_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"type": {"description": "* `SYSCTL`: `var` is a sysctl name (e.g. `kernel.watchdog`) and `value` is its corresponding value (e.g. `0`).\n* `UDEV`: `var` is a udev rules file name (e.g. `10-disable-usb`, `.rules` suffix will be appended automatically) and `value` is its contents (e.g. `BUS==\"usb\", OPTIONS+=\"ignore_device\"`).\n* `ZFS`: `var` is a ZFS kernel module parameter name (e.g. `zfs_dirty_data_max_max`) and `value` is its value (e.g. `783091712`).", "enum": ["SYSCTL", "UDEV", "ZFS"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "var": {"description": "Name or identifier of the system parameter to tune.", "title": "var", "type": "string", "_name_": "var", "_required_": false}, "value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": false}, "comment": {"description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}, "id": {"description": "Unique identifier for the tunable configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "orig_value": {"description": "Original system value of the parameter before this tunable was applied.", "title": "orig_value", "type": "string", "_name_": "orig_value", "_required_": false}}, "title": "TunableQueryResultItem", "type": "object", "_attrs_order_": ["type", "var", "value", "comment", "enabled", "update_initramfs", "id", "orig_value"]}], "type": "array"}, {"additionalProperties": false, "properties": {"type": {"description": "* `SYSCTL`: `var` is a sysctl name (e.g. `kernel.watchdog`) and `value` is its corresponding value (e.g. `0`).\n* `UDEV`: `var` is a udev rules file name (e.g. `10-disable-usb`, `.rules` suffix will be appended automatically) and `value` is its contents (e.g. `BUS==\"usb\", OPTIONS+=\"ignore_device\"`).\n* `ZFS`: `var` is a ZFS kernel module parameter name (e.g. `zfs_dirty_data_max_max`) and `value` is its value (e.g. `783091712`).", "enum": ["SYSCTL", "UDEV", "ZFS"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "var": {"description": "Name or identifier of the system parameter to tune.", "title": "var", "type": "string", "_name_": "var", "_required_": false}, "value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": false}, "comment": {"description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}, "id": {"description": "Unique identifier for the tunable configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "orig_value": {"description": "Original system value of the parameter before this tunable was applied.", "title": "orig_value", "type": "string", "_name_": "orig_value", "_required_": false}}, "title": "TunableQueryResultItem", "type": "object", "_attrs_order_": ["type", "var", "value", "comment", "enabled", "update_initramfs", "id", "orig_value"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "tunable.tunable_type_choices": {"description": "Retrieve the supported tunable types that can be changed.", "cli_description": "Retrieve the supported tunable types that can be changed", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_TUNABLE_READ", "SYSTEM_TUNABLE_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"SYSCTL": {"const": "SYSCTL", "description": "System control parameters that affect kernel behavior.", "enum": ["SYSCTL"], "title": "SYSCTL", "type": "string", "_name_": "SYSCTL", "_required_": true}, "UDEV": {"const": "UDEV", "description": "Device management rules for hardware detection and configuration.", "enum": ["UDEV"], "title": "UDEV", "type": "string", "_name_": "UDEV", "_required_": true}, "ZFS": {"const": "ZFS", "description": "ZFS filesystem kernel module parameters.", "enum": ["ZFS"], "title": "ZFS", "type": "string", "_name_": "ZFS", "_required_": true}}, "required": ["SYSCTL", "UDEV", "ZFS"], "title": "result", "type": "object", "description": "Available tunable types with their identifiers.", "_name_": "result", "_required_": true, "_attrs_order_": ["SYSCTL", "UDEV", "ZFS"]}]}, "tunable.update": {"description": "Update Tunable of `id`.", "cli_description": "Update Tunable of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_TUNABLE_WRITE"], "accepts": [{"description": "ID of the tunable to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": false}, "comment": {"description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for the tunable.", "_name_": "data", "_required_": true, "_attrs_order_": ["value", "comment", "enabled", "update_initramfs"]}], "returns": [{"additionalProperties": false, "properties": {"type": {"default": "SYSCTL", "description": "* `SYSCTL`: `var` is a sysctl name (e.g. `kernel.watchdog`) and `value` is its corresponding value (e.g. `0`).\n* `UDEV`: `var` is a udev rules file name (e.g. `10-disable-usb`, `.rules` suffix will be appended automatically) and `value` is its contents (e.g. `BUS==\"usb\", OPTIONS+=\"ignore_device\"`).\n* `ZFS`: `var` is a ZFS kernel module parameter name (e.g. `zfs_dirty_data_max_max`) and `value` is its value (e.g. `783091712`).", "enum": ["SYSCTL", "UDEV", "ZFS"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "var": {"description": "Name or identifier of the system parameter to tune.", "title": "var", "type": "string", "_name_": "var", "_required_": true}, "value": {"description": "Value to assign to the tunable parameter.", "title": "value", "type": "string", "_name_": "value", "_required_": true}, "comment": {"default": "", "description": "Optional descriptive comment explaining the purpose of this tunable.", "title": "comment", "type": "string", "_name_": "comment", "_required_": false}, "enabled": {"default": true, "description": "Whether this tunable is active and should be applied.", "title": "enabled", "type": "boolean", "_name_": "enabled", "_required_": false}, "update_initramfs": {"default": true, "description": "If `false`, then initramfs will not be updated after creating a ZFS tunable and you will need to run `system boot update_initramfs` manually.", "title": "update_initramfs", "type": "boolean", "_name_": "update_initramfs", "_required_": false}, "id": {"description": "Unique identifier for the tunable configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "orig_value": {"description": "Original system value of the parameter before this tunable was applied.", "title": "orig_value", "type": "string", "_name_": "orig_value", "_required_": true}}, "required": ["var", "value", "id", "orig_value"], "title": "result", "type": "object", "description": "The updated tunable configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "var", "value", "comment", "enabled", "update_initramfs", "id", "orig_value"]}]}, "update.available_versions": {"description": "TrueNAS versions available for update.", "cli_description": "TrueNAS versions available for update", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_UPDATE_READ", "SYSTEM_UPDATE_WRITE"], "accepts": [], "returns": [{"description": "Array of available system update versions across all trains.", "items": [{"additionalProperties": false, "properties": {"train": {"description": "Train that provides this version.", "title": "train", "type": "string", "_name_": "train", "_required_": true}, "version": {"additionalProperties": false, "properties": {"version": {"description": "Newly available version number.", "title": "version", "type": "string", "_name_": "version", "_required_": true}, "manifest": {"description": "Object containing detailed version information and metadata.", "title": "manifest", "type": "object", "_name_": "manifest", "_required_": true}, "release_notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Release notes.", "title": "release_notes", "_name_": "release_notes", "_required_": true}, "release_notes_url": {"description": "Release notes URL.", "title": "release_notes_url", "type": "string", "_name_": "release_notes_url", "_required_": true}}, "required": ["version", "manifest", "release_notes", "release_notes_url"], "title": "version", "type": "object", "description": "Detailed information about this available version.", "_name_": "version", "_required_": true, "_attrs_order_": ["version", "manifest", "release_notes", "release_notes_url"]}}, "required": ["train", "version"], "title": "UpdateAvailableVersion", "type": "object", "_attrs_order_": ["train", "version"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "update.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_UPDATE_READ", "SYSTEM_UPDATE_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the update configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "autocheck": {"description": "Automatically check and download updates every night.", "title": "autocheck", "type": "boolean", "_name_": "autocheck", "_required_": true}, "profile": {"description": "Update profile used for the system.", "title": "profile", "type": "string", "_name_": "profile", "_required_": true}}, "required": ["id", "autocheck", "profile"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "autocheck", "profile"]}]}, "update.download": {"description": "Download updates.", "cli_description": "Download updates", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_UPDATE_WRITE"], "accepts": [{"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specifies the train from which to download the update. If both `train` and `version` are `null``, the most recent version that matches the currently selected update profile is used.", "title": "train", "_name_": "train", "_required_": false}, {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specific version to download. `null` to download the latest version from the specified train.", "title": "version", "_name_": "version", "_required_": false}], "returns": [{"description": "Whether the update download was successfully initiated.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "update.file": {"description": "Updates the system using the uploaded .tar file.", "cli_description": "Updates the system using the uploaded ", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_UPDATE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"resume": {"default": false, "description": "Should be set to `true` if a previous call to this method returned a `CallError` with `errno=EAGAIN` meaning that an upgrade can be performed with a warning and that warning is accepted. In that case, re-uploading the file is not necessary.", "title": "resume", "type": "boolean", "_name_": "resume", "_required_": false}, "destination": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Create a temporary location by default.", "title": "destination", "_name_": "destination", "_required_": false}}, "title": "options", "type": "object", "default": {"resume": false, "destination": null}, "description": "Options for controlling the manual update file upload process.", "_name_": "options", "_required_": false, "_attrs_order_": ["resume", "destination"]}], "returns": [{"description": "Returns `null` on successful update file upload and validation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "update.manual": {"description": "Update the system using a manual update file.", "cli_description": "Update the system using a manual update file", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_UPDATE_WRITE"], "accepts": [{"description": "The absolute path to the update file.", "title": "path", "type": "string", "_name_": "path", "_required_": true}, {"additionalProperties": false, "properties": {"dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of the ZFS dataset to use for the new boot environment. `null` for automatic naming.", "title": "dataset_name", "_name_": "dataset_name", "_required_": false}, "resume": {"default": false, "description": "Should be set to `true` if a previous call to this method returned a `CallError` with `errno=EAGAIN` meaning that an upgrade can be performed with a warning and that warning is accepted.", "title": "resume", "type": "boolean", "_name_": "resume", "_required_": false}, "cleanup": {"default": true, "description": "If set to `false`, the manual update file won't be removed on update success and newly created BE won't be removed on update failure (useful for debugging purposes).", "title": "cleanup", "type": "boolean", "_name_": "cleanup", "_required_": false}}, "title": "options", "type": "object", "default": {"dataset_name": null, "resume": false, "cleanup": true}, "description": "Options for controlling the manual update process.", "_name_": "options", "_required_": false, "_attrs_order_": ["dataset_name", "resume", "cleanup"]}], "returns": [{"description": "Returns `null` on successful manual update initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "update.profile_choices": {"description": "`profile` choices for configuration update.", "cli_description": "`profile` choices for configuration update", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_UPDATE_READ", "SYSTEM_UPDATE_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"name": {"description": "Profile name.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "footnote": {"description": "Profile footnote.", "title": "footnote", "type": "string", "_name_": "footnote", "_required_": true}, "description": {"description": "Profile description.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "available": {"description": "Whether profile is available for selection.", "title": "available", "type": "boolean", "_name_": "available", "_required_": true}}, "required": ["name", "footnote", "description", "available"], "title": "UpdateProfileChoice", "type": "object", "_attrs_order_": ["name", "footnote", "description", "available"]}, "description": "Object of available update profiles with their configuration details.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "update.run": {"description": "Downloads (if not already in cache) and apply an update.", "cli_description": "Downloads (if not already in cache) and apply an update", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["SYSTEM_UPDATE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"dataset_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name of the ZFS dataset to use for the new boot environment. `null` for automatic naming.", "title": "dataset_name", "_name_": "dataset_name", "_required_": false}, "resume": {"default": false, "description": "Should be set to `true` if a previous call to this method returned a `CallError` with `errno=EAGAIN` meaning that an upgrade can be performed with a warning and that warning is accepted. In that case, update process will be continued using an already downloaded file without performing any extra checks.", "title": "resume", "type": "boolean", "_name_": "resume", "_required_": false}, "train": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specifies the train from which to download the update. If both `train` and `version` are `null``, the most recent version that matches the currently selected update profile is used.", "title": "train", "_name_": "train", "_required_": false}, "version": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specific version to update to. `null` to use the latest version from the specified train.", "title": "version", "_name_": "version", "_required_": false}, "reboot": {"default": false, "description": "Whether to automatically reboot the system after applying the update.", "title": "reboot", "type": "boolean", "_name_": "reboot", "_required_": false}}, "title": "attrs", "type": "object", "default": {"dataset_name": null, "resume": false, "train": null, "version": null, "reboot": false}, "description": "Attributes controlling the system update execution process.", "_name_": "attrs", "_required_": false, "_attrs_order_": ["dataset_name", "resume", "train", "version", "reboot"]}], "returns": [{"const": true, "description": "Always returns true on successful update process initiation.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "update.status": {"description": "Update status.", "cli_description": "Update status", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_UPDATE_READ", "SYSTEM_UPDATE_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"code": {"description": "Status code:\n* NORMAL - normal status, see `status` dictionary for details.\n* ERROR - an error occurred, see `error` for details.", "enum": ["NORMAL", "ERROR"], "title": "code", "type": "string", "_name_": "code", "_required_": true}, "status": {"anyOf": [{"additionalProperties": false, "properties": {"current_version": {"additionalProperties": false, "properties": {"train": {"description": "Train name.", "title": "train", "type": "string", "_name_": "train", "_required_": true}, "profile": {"description": "Update profile assigned for the version.", "title": "profile", "type": "string", "_name_": "profile", "_required_": true}, "matches_profile": {"description": "Whether the system version running matches the configured update profile.", "title": "matches_profile", "type": "boolean", "_name_": "matches_profile", "_required_": true}}, "required": ["train", "profile", "matches_profile"], "title": "current_version", "type": "object", "description": "Currently running system version information.", "_name_": "current_version", "_required_": true, "_attrs_order_": ["train", "profile", "matches_profile"]}, "new_version": {"anyOf": [{"additionalProperties": false, "properties": {"version": {"description": "Newly available version number.", "title": "version", "type": "string", "_name_": "version", "_required_": true}, "manifest": {"description": "Object containing detailed version information and metadata.", "title": "manifest", "type": "object", "_name_": "manifest", "_required_": true}, "release_notes": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Release notes.", "title": "release_notes", "_name_": "release_notes", "_required_": true}, "release_notes_url": {"description": "Release notes URL.", "title": "release_notes_url", "type": "string", "_name_": "release_notes_url", "_required_": true}}, "required": ["version", "manifest", "release_notes", "release_notes_url"], "title": "UpdateStatusNewVersion", "type": "object", "_attrs_order_": ["version", "manifest", "release_notes", "release_notes_url"]}, {"type": "null"}], "description": "New system version information (or `null` if no new system version is available).", "title": "new_version", "_name_": "new_version", "_required_": true}}, "required": ["current_version", "new_version"], "title": "UpdateStatusStatus", "type": "object", "_attrs_order_": ["current_version", "new_version"]}, {"type": "null"}], "description": "Detailed update status information. `null` if code is ERROR.", "title": "status", "_name_": "status", "_required_": true}, "error": {"anyOf": [{"additionalProperties": false, "properties": {"errname": {"description": "Error code (i.e. ENONET).", "title": "errname", "type": "string", "_name_": "errname", "_required_": true}, "reason": {"description": "Error text.", "title": "reason", "type": "string", "_name_": "reason", "_required_": true}}, "required": ["errname", "reason"], "title": "UpdateStatusError", "type": "object", "_attrs_order_": ["errname", "reason"]}, {"type": "null"}], "description": "Error message if code is ERROR. `null` otherwise.", "title": "error", "_name_": "error", "_required_": true}, "update_download_progress": {"anyOf": [{"additionalProperties": false, "properties": {"percent": {"description": "Download completion percentage (0.0 to 100.0).", "title": "percent", "type": "number", "_name_": "percent", "_required_": true}, "description": {"description": "Human-readable description of the current download activity.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "version": {"description": "Version number being downloaded.", "title": "version", "type": "string", "_name_": "version", "_required_": true}}, "required": ["percent", "description", "version"], "title": "UpdateDownloadProgress", "type": "object", "_attrs_order_": ["percent", "description", "version"]}, {"type": "null"}], "description": "Current update download progress.", "title": "update_download_progress", "_name_": "update_download_progress", "_required_": true}}, "required": ["code", "status", "error", "update_download_progress"], "title": "result", "type": "object", "description": "Current system update status and availability information.", "_name_": "result", "_required_": true, "_attrs_order_": ["code", "status", "error", "update_download_progress"]}]}, "update.update": {"description": "Update update configuration.", "cli_description": "Update update configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_UPDATE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"autocheck": {"description": "Automatically check and download updates every night.", "title": "autocheck", "type": "boolean", "_name_": "autocheck", "_required_": false}, "profile": {"description": "Update profile used for the system.", "title": "profile", "type": "string", "_name_": "profile", "_required_": false}}, "title": "data", "type": "object", "description": "Updated configuration for system update settings.", "_name_": "data", "_required_": true, "_attrs_order_": ["autocheck", "profile"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the update configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "autocheck": {"description": "Automatically check and download updates every night.", "title": "autocheck", "type": "boolean", "_name_": "autocheck", "_required_": true}, "profile": {"description": "Update profile used for the system.", "title": "profile", "type": "string", "_name_": "profile", "_required_": true}}, "required": ["id", "autocheck", "profile"], "title": "result", "type": "object", "description": "The updated system update configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "autocheck", "profile"]}]}, "ups.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"powerdown": {"description": "Whether the UPS should power down after completing the shutdown sequence.", "title": "powerdown", "type": "boolean", "_name_": "powerdown", "_required_": true}, "rmonitor": {"description": "Whether to enable remote monitoring of the UPS status over the network.", "title": "rmonitor", "type": "boolean", "_name_": "rmonitor", "_required_": true}, "id": {"description": "Unique identifier for the UPS configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "nocommwarntime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Seconds to wait before warning about communication loss with UPS. `null` for default.", "title": "nocommwarntime", "_name_": "nocommwarntime", "_required_": true}, "remoteport": {"description": "Network port for communicating with remote UPS monitoring systems.", "maximum": 65535, "minimum": 1, "title": "remoteport", "type": "integer", "_name_": "remoteport", "_required_": true}, "shutdowntimer": {"description": "Seconds to wait after initiating shutdown before forcing power off.", "title": "shutdowntimer", "type": "integer", "_name_": "shutdowntimer", "_required_": true}, "hostsync": {"description": "Maximum seconds to wait for other systems to shutdown before continuing.", "minimum": 0, "title": "hostsync", "type": "integer", "_name_": "hostsync", "_required_": true}, "description": {"description": "Human-readable description of this UPS configuration.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "driver": {"description": "UPS driver name that handles communication with the specific UPS hardware model.", "title": "driver", "type": "string", "_name_": "driver", "_required_": true}, "extrausers": {"description": "Additional user configurations for UPS monitoring access.", "title": "extrausers", "type": "string", "_name_": "extrausers", "_required_": true}, "identifier": {"description": "Unique identifier name for this UPS device within the monitoring system.", "minLength": 1, "title": "identifier", "type": "string", "_name_": "identifier", "_required_": true}, "mode": {"description": "Operating mode.\n* `MASTER` controls the UPS directly\n* `SLAVE` monitors remotely", "enum": ["MASTER", "SLAVE"], "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "monpwd": {"description": "Password REDACTED, "title": "monpwd", "type": "string", "_name_": "monpwd", "_required_": true}, "monuser": {"description": "Username for UPS monitoring authentication.", "minLength": 1, "title": "monuser", "type": "string", "_name_": "monuser", "_required_": true}, "options": {"description": "Additional configuration options passed to the UPS driver.", "title": "options", "type": "string", "_name_": "options", "_required_": true}, "optionsupsd": {"description": "Additional configuration options for the UPS daemon.", "title": "optionsupsd", "type": "string", "_name_": "optionsupsd", "_required_": true}, "port": {"description": "Serial port or device path for UPS communication.", "title": "port", "type": "string", "_name_": "port", "_required_": true}, "remotehost": {"description": "Hostname or IP address of remote UPS server when operating in SLAVE mode.", "title": "remotehost", "type": "string", "_name_": "remotehost", "_required_": true}, "shutdown": {"description": "Shutdown trigger condition: LOWBATT on low battery, BATT when on battery power.", "enum": ["LOWBATT", "BATT"], "title": "shutdown", "type": "string", "_name_": "shutdown", "_required_": true}, "shutdowncmd": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Custom command to execute during UPS shutdown sequence. `null` for default.", "title": "shutdowncmd", "_name_": "shutdowncmd", "_required_": true}, "complete_identifier": {"description": "Complete UPS identifier including hostname for network monitoring.", "title": "complete_identifier", "type": "string", "_name_": "complete_identifier", "_required_": true}}, "required": ["powerdown", "rmonitor", "id", "nocommwarntime", "remoteport", "shutdowntimer", "hostsync", "description", "driver", "extrausers", "identifier", "mode", "monpwd", "monuser", "options", "optionsupsd", "port", "remotehost", "shutdown", "shutdowncmd", "complete_identifier"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["powerdown", "rmonitor", "id", "nocommwarntime", "remoteport", "shutdowntimer", "hostsync", "description", "driver", "extrausers", "identifier", "mode", "monpwd", "monuser", "options", "optionsupsd", "port", "remotehost", "shutdown", "shutdowncmd", "complete_identifier"]}]}, "ups.driver_choices": {"description": "Returns choices of UPS drivers supported by the system.", "cli_description": "Returns choices of UPS drivers supported by the system", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available UPS driver names and their descriptions.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "ups.port_choices": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "SYSTEM_GENERAL_READ", "SYSTEM_GENERAL_WRITE"], "accepts": [], "returns": [{"description": "Array of available serial ports and device paths for UPS communication.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "ups.update": {"description": "Update UPS Service Configuration.\n\n`powerdown` when enabled, sets UPS to power off after shutting down the system.\n\n`nocommwarntime` is a value in seconds which makes UPS Service wait the specified seconds before alerting that\nthe Service cannot reach configured UPS.\n\n`shutdowntimer` is a value in seconds which tells the Service to wait specified seconds for the UPS before\ninitiating a shutdown. This only applies when `shutdown` is set to \"BATT\".\n\n`shutdowncmd` is the command which is executed to initiate a shutdown. It defaults to \"poweroff\".", "cli_description": "Update UPS Service Configuration", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["SYSTEM_GENERAL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"powerdown": {"description": "Whether the UPS should power down after completing the shutdown sequence.", "title": "powerdown", "type": "boolean", "_name_": "powerdown", "_required_": false}, "rmonitor": {"description": "Whether to enable remote monitoring of the UPS status over the network.", "title": "rmonitor", "type": "boolean", "_name_": "rmonitor", "_required_": false}, "nocommwarntime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Seconds to wait before warning about communication loss with UPS. `null` for default.", "title": "nocommwarntime", "_name_": "nocommwarntime", "_required_": false}, "remoteport": {"description": "Network port for communicating with remote UPS monitoring systems.", "maximum": 65535, "minimum": 1, "title": "remoteport", "type": "integer", "_name_": "remoteport", "_required_": false}, "shutdowntimer": {"description": "Seconds to wait after initiating shutdown before forcing power off.", "title": "shutdowntimer", "type": "integer", "_name_": "shutdowntimer", "_required_": false}, "hostsync": {"description": "Maximum seconds to wait for other systems to shutdown before continuing.", "minimum": 0, "title": "hostsync", "type": "integer", "_name_": "hostsync", "_required_": false}, "description": {"description": "Human-readable description of this UPS configuration.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "driver": {"description": "UPS driver name that handles communication with the specific UPS hardware model.", "title": "driver", "type": "string", "_name_": "driver", "_required_": false}, "extrausers": {"description": "Additional user configurations for UPS monitoring access.", "title": "extrausers", "type": "string", "_name_": "extrausers", "_required_": false}, "identifier": {"description": "Unique identifier name for this UPS device within the monitoring system.", "minLength": 1, "title": "identifier", "type": "string", "_name_": "identifier", "_required_": false}, "mode": {"description": "Operating mode.\n* `MASTER` controls the UPS directly\n* `SLAVE` monitors remotely", "enum": ["MASTER", "SLAVE"], "title": "mode", "type": "string", "_name_": "mode", "_required_": false}, "monpwd": {"description": "Password REDACTED, "minLength": 1, "title": "monpwd", "type": "string", "_name_": "monpwd", "_required_": false}, "monuser": {"description": "Username for UPS monitoring authentication.", "minLength": 1, "title": "monuser", "type": "string", "_name_": "monuser", "_required_": false}, "options": {"description": "Additional configuration options passed to the UPS driver.", "title": "options", "type": "string", "_name_": "options", "_required_": false}, "optionsupsd": {"description": "Additional configuration options for the UPS daemon.", "title": "optionsupsd", "type": "string", "_name_": "optionsupsd", "_required_": false}, "port": {"description": "Serial port or device path for UPS communication.", "title": "port", "type": "string", "_name_": "port", "_required_": false}, "remotehost": {"description": "Hostname or IP address of remote UPS server when operating in SLAVE mode.", "title": "remotehost", "type": "string", "_name_": "remotehost", "_required_": false}, "shutdown": {"description": "Shutdown trigger condition: LOWBATT on low battery, BATT when on battery power.", "enum": ["LOWBATT", "BATT"], "title": "shutdown", "type": "string", "_name_": "shutdown", "_required_": false}, "shutdowncmd": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Custom command to execute during UPS shutdown sequence. `null` for default.", "title": "shutdowncmd", "_name_": "shutdowncmd", "_required_": false}}, "title": "ups_update", "type": "object", "description": "UPSUpdateArgs parameters.", "_name_": "ups_update", "_required_": true, "_attrs_order_": ["powerdown", "rmonitor", "nocommwarntime", "remoteport", "shutdowntimer", "hostsync", "description", "driver", "extrausers", "identifier", "mode", "monpwd", "monuser", "options", "optionsupsd", "port", "remotehost", "shutdown", "shutdowncmd"]}], "returns": [{"additionalProperties": false, "properties": {"powerdown": {"description": "Whether the UPS should power down after completing the shutdown sequence.", "title": "powerdown", "type": "boolean", "_name_": "powerdown", "_required_": true}, "rmonitor": {"description": "Whether to enable remote monitoring of the UPS status over the network.", "title": "rmonitor", "type": "boolean", "_name_": "rmonitor", "_required_": true}, "id": {"description": "Unique identifier for the UPS configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "nocommwarntime": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Seconds to wait before warning about communication loss with UPS. `null` for default.", "title": "nocommwarntime", "_name_": "nocommwarntime", "_required_": true}, "remoteport": {"description": "Network port for communicating with remote UPS monitoring systems.", "maximum": 65535, "minimum": 1, "title": "remoteport", "type": "integer", "_name_": "remoteport", "_required_": true}, "shutdowntimer": {"description": "Seconds to wait after initiating shutdown before forcing power off.", "title": "shutdowntimer", "type": "integer", "_name_": "shutdowntimer", "_required_": true}, "hostsync": {"description": "Maximum seconds to wait for other systems to shutdown before continuing.", "minimum": 0, "title": "hostsync", "type": "integer", "_name_": "hostsync", "_required_": true}, "description": {"description": "Human-readable description of this UPS configuration.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "driver": {"description": "UPS driver name that handles communication with the specific UPS hardware model.", "title": "driver", "type": "string", "_name_": "driver", "_required_": true}, "extrausers": {"description": "Additional user configurations for UPS monitoring access.", "title": "extrausers", "type": "string", "_name_": "extrausers", "_required_": true}, "identifier": {"description": "Unique identifier name for this UPS device within the monitoring system.", "minLength": 1, "title": "identifier", "type": "string", "_name_": "identifier", "_required_": true}, "mode": {"description": "Operating mode.\n* `MASTER` controls the UPS directly\n* `SLAVE` monitors remotely", "enum": ["MASTER", "SLAVE"], "title": "mode", "type": "string", "_name_": "mode", "_required_": true}, "monpwd": {"description": "Password REDACTED, "title": "monpwd", "type": "string", "_name_": "monpwd", "_required_": true}, "monuser": {"description": "Username for UPS monitoring authentication.", "minLength": 1, "title": "monuser", "type": "string", "_name_": "monuser", "_required_": true}, "options": {"description": "Additional configuration options passed to the UPS driver.", "title": "options", "type": "string", "_name_": "options", "_required_": true}, "optionsupsd": {"description": "Additional configuration options for the UPS daemon.", "title": "optionsupsd", "type": "string", "_name_": "optionsupsd", "_required_": true}, "port": {"description": "Serial port or device path for UPS communication.", "title": "port", "type": "string", "_name_": "port", "_required_": true}, "remotehost": {"description": "Hostname or IP address of remote UPS server when operating in SLAVE mode.", "title": "remotehost", "type": "string", "_name_": "remotehost", "_required_": true}, "shutdown": {"description": "Shutdown trigger condition: LOWBATT on low battery, BATT when on battery power.", "enum": ["LOWBATT", "BATT"], "title": "shutdown", "type": "string", "_name_": "shutdown", "_required_": true}, "shutdowncmd": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Custom command to execute during UPS shutdown sequence. `null` for default.", "title": "shutdowncmd", "_name_": "shutdowncmd", "_required_": true}, "complete_identifier": {"description": "Complete UPS identifier including hostname for network monitoring.", "title": "complete_identifier", "type": "string", "_name_": "complete_identifier", "_required_": true}}, "required": ["powerdown", "rmonitor", "id", "nocommwarntime", "remoteport", "shutdowntimer", "hostsync", "description", "driver", "extrausers", "identifier", "mode", "monpwd", "monuser", "options", "optionsupsd", "port", "remotehost", "shutdown", "shutdowncmd", "complete_identifier"], "title": "result", "type": "object", "description": "The updated UPS configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["powerdown", "rmonitor", "id", "nocommwarntime", "remoteport", "shutdowntimer", "hostsync", "description", "driver", "extrausers", "identifier", "mode", "monpwd", "monuser", "options", "optionsupsd", "port", "remotehost", "shutdown", "shutdowncmd", "complete_identifier"]}]}, "user.create": {"description": "Create a new user.", "cli_description": "Create a new user", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"uid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "UNIX UID. If not provided, it is automatically filled with the next one available.", "title": "uid", "_name_": "uid", "_required_": false}, "username": {"description": "String used to uniquely identify the user on the server. In order to be portable across systems, local user names must be composed of characters from the POSIX portable filename character set (IEEE Std 1003.1-2024 section 3.265). This means alphanumeric characters, hyphens, underscores, and periods. Usernames also may not begin with a hyphen or a period.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "home": {"default": "/var/empty", "description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"default": "/usr/bin/zsh", "description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "minLength": 1, "title": "full_name", "type": "string", "_name_": "full_name", "_required_": true}, "smb": {"default": true, "description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "default": null, "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "The group entry `id` for the user's primary group. This is not the same as the Unix group `gid` value. This is required if `group_create` is `false`. ", "title": "group", "_name_": "group", "_required_": false}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, "description": "If set to `true` password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "description": "Allow the user to authenticate to the TrueNAS SSH server using a password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"default": false, "description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"format": "email", "type": "string"}, {"type": "null"}], "default": null, "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "group_create": {"default": false, "description": "If set to `true`, the TrueNAS server automatically creates a new local group as the user's primary group. ", "title": "group_create", "type": "boolean", "_name_": "group_create", "_required_": false}, "home_create": {"default": false, "description": "Create a new home directory for the user in the specified `home` path. ", "title": "home_create", "type": "boolean", "_name_": "home_create", "_required_": false}, "home_mode": {"default": "700", "description": "Filesystem permission to set on the user's home directory. ", "title": "home_mode", "type": "string", "_name_": "home_mode", "_required_": false}, "password REDACTED, "type": "string"}, {"type": "null"}], "default": null, "description": "The password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "random_password REDACTED, "description": "Generate a random 20 character password REDACTED, "title": "random_password REDACTED, "type": "boolean", "_name_": "random_password REDACTED, "_required_": false}}, "required": ["username", "full_name"], "title": "user_create", "type": "object", "description": "Configuration for creating a new user account.", "_name_": "user_create", "_required_": true, "_attrs_order_": ["uid", "username", "home", "shell", "full_name", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "group_create", "home_create", "home_mode", "password REDACTED, "random_password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the user. Use this ID for `user.update` and `user.delete` API calls. This ID also appears in the `users` array for each group entry in `group.query` results.\n\nNOTE: For users from a directory service, the `id` is calculated by adding 100000000 to the `uid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "uid": {"description": "A non-negative integer used to identify a system user. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "description": "A string used to identify a user. Local accounts must use characters from the POSIX portable filename character set. ", "title": "username", "_name_": "username", "_required_": true}, "unixhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hashed password REDACTED, "title": "unixhash", "_name_": "unixhash", "_required_": true}, "smbhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "NT hash of the local account password REDACTED, "title": "smbhash", "_name_": "smbhash", "_required_": true}, "home": {"default": "/var/empty", "description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"default": "/usr/bin/zsh", "description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "title": "full_name", "type": "string", "_name_": "full_name", "_required_": true}, "builtin": {"description": "If `true`, the user account is an internal system account for the TrueNAS server. Typically, one should create dedicated user accounts for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "smb": {"default": true, "description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "default": null, "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "The primary group of the user account. ", "title": "group", "type": "object", "_name_": "group", "_required_": true}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, "description": "If set to `true` password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "description": "Allow the user to authenticate to the TrueNAS SSH server using a password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"default": false, "description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "local": {"description": "If `true`, the account is local to the TrueNAS server. If `false`, the account is provided by a directory service. ", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "immutable": {"description": "If `true`, the account is system-provided and most fields related to it may not be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}, "twofactor_auth_configured": {"description": "If `true`, the account has been configured for two-factor authentication. Users are prompted for a second factor when authenticating to the TrueNAS web UI and API. They may also be prompted when signing in to the TrueNAS SSH server using a password REDACTED, "title": "twofactor_auth_configured", "type": "boolean", "_name_": "twofactor_auth_configured", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "last_password REDACTED, "type": "string"}, {"type": "null"}], "description": "The date of the last password REDACTED, "title": "last_password REDACTED, "_name_": "last_password REDACTED, "_required_": true}, "password REDACTED}, {"type": "null"}], "description": "The age in days of the password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED}], "type": "array"}, {"type": "null"}], "description": "This contains hashes of the ten most recent password REDACTED, and is for enforcing password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}, "roles": {"description": "Array of roles assigned to this user's groups. Roles control administrative access to TrueNAS through the web UI and API.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "api_key REDACTED, "items": [{"type": "integer"}], "title": "api_key REDACTED, "type": "array", "_name_": "api_key REDACTED, "_required_": true}, "password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}}, "required": ["id", "uid", "username", "unixhash", "smbhash", "full_name", "builtin", "group", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "password REDACTED, "title": "result", "type": "object", "description": "The newly created user account with password REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "uid", "username", "unixhash", "smbhash", "home", "shell", "full_name", "builtin", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "password REDACTED}]}, "user.delete": {"description": "Delete user `id`.\n\nThe `delete_group` option deletes the user primary group if it is not being used by\nany other user.", "cli_description": "Delete user `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"description": "ID of the user account to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"delete_group": {"default": true, "description": "Delete the user primary group if it is not being used by any other user.", "title": "delete_group", "type": "boolean", "_name_": "delete_group", "_required_": false}}, "title": "options", "type": "object", "description": "Options controlling the user deletion process.", "_name_": "options", "_required_": false, "_attrs_order_": ["delete_group"]}], "returns": [{"description": "ID of the deleted user account.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "user.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the user. Use this ID for `user.update` and `user.delete` API calls. This ID also appears in the `users` array for each group entry in `group.query` results.\n\nNOTE: For users from a directory service, the `id` is calculated by adding 100000000 to the `uid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "uid": {"description": "A non-negative integer used to identify a system user. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "description": "A string used to identify a user. Local accounts must use characters from the POSIX portable filename character set. ", "title": "username", "_name_": "username", "_required_": true}, "unixhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hashed password REDACTED, "title": "unixhash", "_name_": "unixhash", "_required_": true}, "smbhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "NT hash of the local account password REDACTED, "title": "smbhash", "_name_": "smbhash", "_required_": true}, "home": {"default": "/var/empty", "description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"default": "/usr/bin/zsh", "description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "title": "full_name", "type": "string", "_name_": "full_name", "_required_": true}, "builtin": {"description": "If `true`, the user account is an internal system account for the TrueNAS server. Typically, one should create dedicated user accounts for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "smb": {"default": true, "description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "default": null, "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "The primary group of the user account. ", "title": "group", "type": "object", "_name_": "group", "_required_": true}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, "description": "If set to `true` password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "description": "Allow the user to authenticate to the TrueNAS SSH server using a password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"default": false, "description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "local": {"description": "If `true`, the account is local to the TrueNAS server. If `false`, the account is provided by a directory service. ", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "immutable": {"description": "If `true`, the account is system-provided and most fields related to it may not be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}, "twofactor_auth_configured": {"description": "If `true`, the account has been configured for two-factor authentication. Users are prompted for a second factor when authenticating to the TrueNAS web UI and API. They may also be prompted when signing in to the TrueNAS SSH server using a password REDACTED, "title": "twofactor_auth_configured", "type": "boolean", "_name_": "twofactor_auth_configured", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "last_password REDACTED, "type": "string"}, {"type": "null"}], "description": "The date of the last password REDACTED, "title": "last_password REDACTED, "_name_": "last_password REDACTED, "_required_": true}, "password REDACTED}, {"type": "null"}], "description": "The age in days of the password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED}], "type": "array"}, {"type": "null"}], "description": "This contains hashes of the ten most recent password REDACTED, and is for enforcing password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}, "roles": {"description": "Array of roles assigned to this user's groups. Roles control administrative access to TrueNAS through the web UI and API.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "api_key REDACTED, "items": [{"type": "integer"}], "title": "api_key REDACTED, "type": "array", "_name_": "api_key REDACTED, "_required_": true}}, "required": ["id", "uid", "username", "unixhash", "smbhash", "full_name", "builtin", "group", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "uid", "username", "unixhash", "smbhash", "home", "shell", "full_name", "builtin", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED}]}, "user.get_next_uid": {"description": "Get the next available/free uid.", "cli_description": "Get the next available/free uid", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [], "returns": [{"description": "Next available UID for creating a new local user account.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "user.get_user_obj": {"description": "Returns dictionary containing information from struct passwd for the user specified by either\nthe username or uid. Bypasses user cache.\n\nNOTE: results will not include nested groups for Active Directory users.", "cli_description": "Returns dictionary containing information from struct passwd for the user specified by either the username or uid", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"username": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Username to lookup. Either `username` or `uid` must be specified.", "title": "username", "_name_": "username", "_required_": false}, "uid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "User ID to lookup. Either `username` or `uid` must be specified.", "title": "uid", "_name_": "uid", "_required_": false}, "get_groups": {"default": false, "description": "Retrieve group list for the specified user.", "title": "get_groups", "type": "boolean", "_name_": "get_groups", "_required_": false}, "sid_info": {"default": false, "description": "Retrieve SID and domain information for the user.", "title": "sid_info", "type": "boolean", "_name_": "sid_info", "_required_": false}}, "title": "get_user_obj", "type": "object", "description": "UserGetUserObjArgs parameters.", "_name_": "get_user_obj", "_required_": true, "_attrs_order_": ["username", "uid", "get_groups", "sid_info"]}], "returns": [{"additionalProperties": false, "properties": {"pw_name": {"description": "Name of the user.", "title": "pw_name", "type": "string", "_name_": "pw_name", "_required_": true}, "pw_gecos": {"description": "Full username or comment field.", "title": "pw_gecos", "type": "string", "_name_": "pw_gecos", "_required_": true}, "pw_dir": {"description": "User home directory.", "title": "pw_dir", "type": "string", "_name_": "pw_dir", "_required_": true}, "pw_shell": {"description": "User command line interpreter.", "title": "pw_shell", "type": "string", "_name_": "pw_shell", "_required_": true}, "pw_uid": {"description": "Numerical user ID of the user.", "title": "pw_uid", "type": "integer", "_name_": "pw_uid", "_required_": true}, "pw_gid": {"description": "Numerical group id for the user's primary group.", "title": "pw_gid", "type": "integer", "_name_": "pw_gid", "_required_": true}, "grouplist": {"anyOf": [{"items": [{"type": "integer"}], "type": "array"}, {"type": "null"}], "description": "Optional array of group IDs for groups of which this account is a member. If `get_groups` is not specified, this value will be `null`.", "title": "grouplist", "_name_": "grouplist", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional SID value for the account that is present if `sid_info` is specified in payload.", "title": "sid", "_name_": "sid", "_required_": true}, "source": {"description": "The source for the user account.", "enum": ["LOCAL", "ACTIVEDIRECTORY", "LDAP"], "title": "source", "type": "string", "_name_": "source", "_required_": true}, "local": {"description": "The account is local to TrueNAS or provided by a directory service.", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}}, "required": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local"], "title": "result", "type": "object", "description": "User account information in Unix passwd format.", "_name_": "result", "_required_": true, "_attrs_order_": ["pw_name", "pw_gecos", "pw_dir", "pw_shell", "pw_uid", "pw_gid", "grouplist", "sid", "source", "local"]}]}, "user.has_local_administrator_set_up": {"description": "Return whether a local administrator with a valid password REDACTED, "cli_description": "Return whether a local administrator with a valid password REDACTED, "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [], "returns": [{"description": "Whether a local administrator account has been configured on this system.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "user.query": {"description": "Query users with `query-filters` and `query-options`.\n\nIf users provided by Active Directory or LDAP are not desired, then\n\"local\", \"=\", True should be added to filters.", "cli_description": "Query users with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the user. Use this ID for `user.update` and `user.delete` API calls. This ID also appears in the `users` array for each group entry in `group.query` results.\n\nNOTE: For users from a directory service, the `id` is calculated by adding 100000000 to the `uid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "uid": {"description": "A non-negative integer used to identify a system user. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": false}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "description": "A string used to identify a user. Local accounts must use characters from the POSIX portable filename character set. ", "title": "username", "_name_": "username", "_required_": false}, "unixhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hashed password REDACTED, "title": "unixhash", "_name_": "unixhash", "_required_": false}, "smbhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "NT hash of the local account password REDACTED, "title": "smbhash", "_name_": "smbhash", "_required_": false}, "home": {"description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "title": "full_name", "type": "string", "_name_": "full_name", "_required_": false}, "builtin": {"description": "If `true`, the user account is an internal system account for the TrueNAS server. Typically, one should create dedicated user accounts for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "smb": {"description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "The primary group of the user account. ", "title": "group", "type": "object", "_name_": "group", "_required_": false}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "local": {"description": "If `true`, the account is local to the TrueNAS server. If `false`, the account is provided by a directory service. ", "title": "local", "type": "boolean", "_name_": "local", "_required_": false}, "immutable": {"description": "If `true`, the account is system-provided and most fields related to it may not be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": false}, "twofactor_auth_configured": {"description": "If `true`, the account has been configured for two-factor authentication. Users are prompted for a second factor when authenticating to the TrueNAS web UI and API. They may also be prompted when signing in to the TrueNAS SSH server using a password REDACTED, "title": "twofactor_auth_configured", "type": "boolean", "_name_": "twofactor_auth_configured", "_required_": false}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": false}, "last_password REDACTED, "type": "string"}, {"type": "null"}], "description": "The date of the last password REDACTED, "title": "last_password REDACTED, "_name_": "last_password REDACTED, "_required_": false}, "password REDACTED}, {"type": "null"}], "description": "The age in days of the password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "password REDACTED}], "type": "array"}, {"type": "null"}], "description": "This contains hashes of the ten most recent password REDACTED, and is for enforcing password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "roles": {"description": "Array of roles assigned to this user's groups. Roles control administrative access to TrueNAS through the web UI and API.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "api_key REDACTED, "items": [{"type": "integer"}], "title": "api_key REDACTED, "type": "array", "_name_": "api_key REDACTED, "_required_": false}}, "title": "UserQueryResultItem", "type": "object", "_attrs_order_": ["id", "uid", "username", "unixhash", "smbhash", "home", "shell", "full_name", "builtin", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the user. Use this ID for `user.update` and `user.delete` API calls. This ID also appears in the `users` array for each group entry in `group.query` results.\n\nNOTE: For users from a directory service, the `id` is calculated by adding 100000000 to the `uid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "uid": {"description": "A non-negative integer used to identify a system user. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": false}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "description": "A string used to identify a user. Local accounts must use characters from the POSIX portable filename character set. ", "title": "username", "_name_": "username", "_required_": false}, "unixhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hashed password REDACTED, "title": "unixhash", "_name_": "unixhash", "_required_": false}, "smbhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "NT hash of the local account password REDACTED, "title": "smbhash", "_name_": "smbhash", "_required_": false}, "home": {"description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "title": "full_name", "type": "string", "_name_": "full_name", "_required_": false}, "builtin": {"description": "If `true`, the user account is an internal system account for the TrueNAS server. Typically, one should create dedicated user accounts for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": false}, "smb": {"description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "The primary group of the user account. ", "title": "group", "type": "object", "_name_": "group", "_required_": false}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "local": {"description": "If `true`, the account is local to the TrueNAS server. If `false`, the account is provided by a directory service. ", "title": "local", "type": "boolean", "_name_": "local", "_required_": false}, "immutable": {"description": "If `true`, the account is system-provided and most fields related to it may not be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": false}, "twofactor_auth_configured": {"description": "If `true`, the account has been configured for two-factor authentication. Users are prompted for a second factor when authenticating to the TrueNAS web UI and API. They may also be prompted when signing in to the TrueNAS SSH server using a password REDACTED, "title": "twofactor_auth_configured", "type": "boolean", "_name_": "twofactor_auth_configured", "_required_": false}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": false}, "last_password REDACTED, "type": "string"}, {"type": "null"}], "description": "The date of the last password REDACTED, "title": "last_password REDACTED, "_name_": "last_password REDACTED, "_required_": false}, "password REDACTED}, {"type": "null"}], "description": "The age in days of the password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "password REDACTED}], "type": "array"}, {"type": "null"}], "description": "This contains hashes of the ten most recent password REDACTED, and is for enforcing password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "roles": {"description": "Array of roles assigned to this user's groups. Roles control administrative access to TrueNAS through the web UI and API.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": false}, "api_key REDACTED, "items": [{"type": "integer"}], "title": "api_key REDACTED, "type": "array", "_name_": "api_key REDACTED, "_required_": false}}, "title": "UserQueryResultItem", "type": "object", "_attrs_order_": ["id", "uid", "username", "unixhash", "smbhash", "home", "shell", "full_name", "builtin", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "user.renew_2fa_secret REDACTED, "cli_description": "Renew `username` user's two-factor authentication secret REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Username to renew two-factor authentication secret REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}, {"additionalProperties": false, "properties": {"otp_digits": {"description": "Represents number of allowed digits in the OTP.", "maximum": 8, "minimum": 6, "title": "otp_digits", "type": "integer", "_name_": "otp_digits", "_required_": false}, "interval": {"description": "Time duration in seconds specifying OTP expiration time from its creation time.", "minimum": 5, "title": "interval", "type": "integer", "_name_": "interval", "_required_": false}}, "title": "twofactor_options", "type": "object", "description": "Configuration options for the new two-factor authentication setup.", "_name_": "twofactor_options", "_required_": true, "_attrs_order_": ["otp_digits", "interval"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the user. Use this ID for `user.update` and `user.delete` API calls. This ID also appears in the `users` array for each group entry in `group.query` results.\n\nNOTE: For users from a directory service, the `id` is calculated by adding 100000000 to the `uid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "uid": {"description": "A non-negative integer used to identify a system user. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "description": "A string used to identify a user. Local accounts must use characters from the POSIX portable filename character set. ", "title": "username", "_name_": "username", "_required_": true}, "unixhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hashed password REDACTED, "title": "unixhash", "_name_": "unixhash", "_required_": true}, "smbhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "NT hash of the local account password REDACTED, "title": "smbhash", "_name_": "smbhash", "_required_": true}, "home": {"default": "/var/empty", "description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"default": "/usr/bin/zsh", "description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "title": "full_name", "type": "string", "_name_": "full_name", "_required_": true}, "builtin": {"description": "If `true`, the user account is an internal system account for the TrueNAS server. Typically, one should create dedicated user accounts for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "smb": {"default": true, "description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "default": null, "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "The primary group of the user account. ", "title": "group", "type": "object", "_name_": "group", "_required_": true}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, "description": "If set to `true` password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "description": "Allow the user to authenticate to the TrueNAS SSH server using a password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"default": false, "description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "local": {"description": "If `true`, the account is local to the TrueNAS server. If `false`, the account is provided by a directory service. ", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "immutable": {"description": "If `true`, the account is system-provided and most fields related to it may not be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}, "twofactor_auth_configured": {"description": "If `true`, the account has been configured for two-factor authentication. Users are prompted for a second factor when authenticating to the TrueNAS web UI and API. They may also be prompted when signing in to the TrueNAS SSH server using a password REDACTED, "title": "twofactor_auth_configured", "type": "boolean", "_name_": "twofactor_auth_configured", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "last_password REDACTED, "type": "string"}, {"type": "null"}], "description": "The date of the last password REDACTED, "title": "last_password REDACTED, "_name_": "last_password REDACTED, "_required_": true}, "password REDACTED}, {"type": "null"}], "description": "The age in days of the password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED}], "type": "array"}, {"type": "null"}], "description": "This contains hashes of the ten most recent password REDACTED, and is for enforcing password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}, "roles": {"description": "Array of roles assigned to this user's groups. Roles control administrative access to TrueNAS through the web UI and API.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "api_key REDACTED, "items": [{"type": "integer"}], "title": "api_key REDACTED, "type": "array", "_name_": "api_key REDACTED, "_required_": true}, "twofactor_config": {"additionalProperties": false, "properties": {"provisioning_uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "QR code URI for setting up two-factor authentication in authenticator apps. `null` if not available.", "title": "provisioning_uri", "_name_": "provisioning_uri", "_required_": true}, "secret REDACTED, "title": "secret REDACTED, "type": "boolean", "_name_": "secret REDACTED, "_required_": true}, "interval": {"description": "Time interval in seconds for OTP validity period.", "title": "interval", "type": "integer", "_name_": "interval", "_required_": true}, "otp_digits": {"description": "Number of digits in the generated one-time password REDACTED, "title": "otp_digits", "type": "integer", "_name_": "otp_digits", "_required_": true}}, "required": ["provisioning_uri", "secret REDACTED, "interval", "otp_digits"], "title": "twofactor_config", "type": "object", "description": "New two-factor authentication configuration with provisioning details.", "_name_": "twofactor_config", "_required_": true, "_attrs_order_": ["provisioning_uri", "secret REDACTED, "interval", "otp_digits"]}}, "required": ["id", "uid", "username", "unixhash", "smbhash", "full_name", "builtin", "group", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "twofactor_config"], "title": "result", "type": "object", "description": "UserRenew2faSecret REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "uid", "username", "unixhash", "smbhash", "home", "shell", "full_name", "builtin", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "twofactor_config"]}]}, "user.set_password REDACTED, LDAP, etc)\n* account has password REDACTED,\npassword REDACTED, "cli_description": "Set the password REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"additionalProperties": false, "properties": {"username": {"description": "Username of the account to change password REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "old_password REDACTED}, {"type": "null"}], "default": null, "description": "Current password REDACTED, "title": "old_password REDACTED, "_name_": "old_password REDACTED, "_required_": false}, "new_password REDACTED, "minLength": 1, "title": "new_password REDACTED, "type": "string", "_name_": "new_password REDACTED, "_required_": true}}, "required": ["username", "new_password REDACTED, "title": "set_password REDACTED, "type": "object", "description": "UserSetPassword REDACTED, "_name_": "set_password REDACTED, "_required_": true, "_attrs_order_": ["username", "old_password REDACTED, "new_password REDACTED}], "returns": [{"description": "Returns `null` on successful password REDACTED, "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "user.setup_local_administrator": {"description": "Set up local administrator (this method does not require authentication if local administrator is not already\nset up).", "cli_description": "Set up local administrator (this method does not require authentication if local administrator is not already set up)", "examples": {}, "item_method": false, "no_auth_required": true, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": [], "accepts": [{"description": "Administrator username to configure.", "enum": ["root", "truenas_admin"], "title": "username", "type": "string", "_name_": "username", "_required_": true}, {"description": "Password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, {"additionalProperties": false, "properties": {"ec2": {"anyOf": [{"additionalProperties": false, "properties": {"instance_id": {"description": "EC2 instance identifier for cloud-specific administrator setup.", "minLength": 1, "title": "instance_id", "type": "string", "_name_": "instance_id", "_required_": true}}, "required": ["instance_id"], "title": "UserSetupLocalAdministratorEC2Options", "type": "object", "_attrs_order_": ["instance_id"]}, {"type": "null"}], "default": null, "description": "Cloud platform-specific options for administrator setup. `null` for standard setup.", "title": "ec2", "_name_": "ec2", "_required_": false}}, "title": "options", "type": "object", "description": "Additional options for cloud or specialized administrator setup.", "_name_": "options", "_required_": false, "_attrs_order_": ["ec2"]}], "returns": [{"description": "Returns `null` on successful administrator account setup.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "user.shell_choices": {"description": "Return the available shell choices to be used in `user.create` and `user.update`.\n\n:param group_ids: List of local group IDs for the user.", "cli_description": "Return the available shell choices to be used in `user", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_READ", "ACCOUNT_WRITE", "READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"default": [], "description": "Array of group IDs to filter shell choices. Empty array returns all shells.", "items": [{"type": "integer"}], "title": "group_ids", "type": "array", "_name_": "group_ids", "_required_": false}], "returns": [{"description": "Object of available shell paths and their descriptive names.", "examples": [{"/usr/bin/bash": "bash", "/usr/bin/dash": "dash", "/usr/bin/rbash": "rbash", "/usr/bin/sh": "sh", "/usr/bin/tmux": "tmux", "/usr/bin/zsh": "zsh", "/usr/sbin/nologin": "nologin"}], "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "user.unset_2fa_secret REDACTED, "cli_description": "Unset two-factor authentication secret REDACTED, "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"description": "Username to disable two-factor authentication for.", "title": "username", "type": "string", "_name_": "username", "_required_": true}], "returns": [{"description": "Returns `null` on successful two-factor authentication removal.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "user.update": {"description": "Update attributes of an existing user.", "cli_description": "Update attributes of an existing user", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["ACCOUNT_WRITE"], "accepts": [{"description": "ID of the user account to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"username": {"description": "String used to uniquely identify the user on the server. In order to be portable across systems, local user names must be composed of characters from the POSIX portable filename character set (IEEE Std 1003.1-2024 section 3.265). This means alphanumeric characters, hyphens, underscores, and periods. Usernames also may not begin with a hyphen or a period.", "title": "username", "type": "string", "_name_": "username", "_required_": false}, "home": {"description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "minLength": 1, "title": "full_name", "type": "string", "_name_": "full_name", "_required_": false}, "smb": {"description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "The group entry `id` for the user's primary group. This is not the same as the Unix group `gid` value. This is required if `group_create` is `false`. ", "title": "group", "_name_": "group", "_required_": false}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"format": "email", "type": "string"}, {"type": "null"}], "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "home_create": {"description": "Create a new home directory for the user in the specified `home` path. ", "title": "home_create", "type": "boolean", "_name_": "home_create", "_required_": false}, "home_mode": {"description": "Filesystem permission to set on the user's home directory. ", "title": "home_mode", "type": "string", "_name_": "home_mode", "_required_": false}, "password REDACTED, "type": "string"}, {"type": "null"}], "description": "The password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "random_password REDACTED, "title": "random_password REDACTED, "type": "boolean", "_name_": "random_password REDACTED, "_required_": false}}, "title": "user_update", "type": "object", "description": "Updated configuration for the user account.", "_name_": "user_update", "_required_": true, "_attrs_order_": ["username", "home", "shell", "full_name", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "home_create", "home_mode", "password REDACTED, "random_password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "This is the API identifier for the user. Use this ID for `user.update` and `user.delete` API calls. This ID also appears in the `users` array for each group entry in `group.query` results.\n\nNOTE: For users from a directory service, the `id` is calculated by adding 100000000 to the `uid`. This ensures consistent API results. You cannot change directory service accounts through TrueNAS. ", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "uid": {"description": "A non-negative integer used to identify a system user. TrueNAS uses this value for permission checks and many other system purposes. ", "title": "uid", "type": "integer", "_name_": "uid", "_required_": true}, "username": {"anyOf": [{"type": "string"}, {"minLength": 1, "type": "string"}], "description": "A string used to identify a user. Local accounts must use characters from the POSIX portable filename character set. ", "title": "username", "_name_": "username", "_required_": true}, "unixhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hashed password REDACTED, "title": "unixhash", "_name_": "unixhash", "_required_": true}, "smbhash": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "NT hash of the local account password REDACTED, "title": "smbhash", "_name_": "smbhash", "_required_": true}, "home": {"default": "/var/empty", "description": "The local file system path for the user account's home directory.\nTypically, this is required only if the account has shell access (local or SSH) to TrueNAS.\nThis is not required for accounts used only for SMB share access. ", "minLength": 1, "title": "home", "type": "string", "_name_": "home", "_required_": false}, "shell": {"default": "/usr/bin/zsh", "description": "Available choices can be retrieved with `user.shell_choices`.", "minLength": 1, "title": "shell", "type": "string", "_name_": "shell", "_required_": false}, "full_name": {"description": "Comment field to provide additional information about the user account. Typically, this is the full name of the user or a short description of a service account. There are no character set restrictions for this field. This field is for information only. ", "title": "full_name", "type": "string", "_name_": "full_name", "_required_": true}, "builtin": {"description": "If `true`, the user account is an internal system account for the TrueNAS server. Typically, one should create dedicated user accounts for access to the TrueNAS server webui and shares. ", "title": "builtin", "type": "boolean", "_name_": "builtin", "_required_": true}, "smb": {"default": true, "description": "The user account may be used to access SMB shares. If set to `true` then TrueNAS stores an NT hash of the user account's password REDACTED, "title": "smb", "type": "boolean", "_name_": "smb", "_required_": false}, "userns_idmap": {"anyOf": [{"enum": ["DIRECT", null]}, {"maximum": 4294967294, "minimum": 1, "type": "integer"}], "default": null, "description": "Specifies the subuid mapping for this user. If DIRECT then the UID will be directly mapped to all containers. Alternatively, the target UID may be explicitly specified. If `null`, then the UID will not be mapped.\n\nNOTE: This field will be ignored for users that have been assigned TrueNAS roles.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "group": {"description": "The primary group of the user account. ", "title": "group", "type": "object", "_name_": "group", "_required_": true}, "groups": {"description": "Array of additional groups to which the user belongs. NOTE: Groups are identified by their group entry `id`, not their Unix group ID (`gid`). ", "items": [{"type": "integer"}], "title": "groups", "type": "array", "_name_": "groups", "_required_": false}, "password REDACTED, "description": "If set to `true` password REDACTED, such as SSH key-based authentication.\n\nNOTE: Password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": false}, "ssh_password REDACTED, "description": "Allow the user to authenticate to the TrueNAS SSH server using a password REDACTED, "title": "ssh_password REDACTED, "type": "boolean", "_name_": "ssh_password REDACTED, "_required_": false}, "sshpubkey": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "SSH public keys corresponding to private keys that authenticate this user to the TrueNAS SSH server. ", "title": "sshpubkey", "_name_": "sshpubkey", "_required_": false}, "locked": {"default": false, "description": "If set to `true` the account is locked. The account cannot be used to authenticate to the TrueNAS server. ", "title": "locked", "type": "boolean", "_name_": "locked", "_required_": false}, "sudo_commands": {"description": "An array of commands the user may execute with elevated privileges. User is prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands", "type": "array", "_name_": "sudo_commands", "_required_": false}, "sudo_commands_nopasswd": {"description": "An array of commands the user may execute with elevated privileges. User is *not* prompted for password REDACTED, "items": [{"minLength": 1, "type": "string"}], "title": "sudo_commands_nopasswd", "type": "array", "_name_": "sudo_commands_nopasswd", "_required_": false}, "email": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Email address of the user. If the user has the `FULL_ADMIN` role, they will receive email alerts and notifications. ", "title": "email", "_name_": "email", "_required_": false}, "local": {"description": "If `true`, the account is local to the TrueNAS server. If `false`, the account is provided by a directory service. ", "title": "local", "type": "boolean", "_name_": "local", "_required_": true}, "immutable": {"description": "If `true`, the account is system-provided and most fields related to it may not be changed. ", "title": "immutable", "type": "boolean", "_name_": "immutable", "_required_": true}, "twofactor_auth_configured": {"description": "If `true`, the account has been configured for two-factor authentication. Users are prompted for a second factor when authenticating to the TrueNAS web UI and API. They may also be prompted when signing in to the TrueNAS SSH server using a password REDACTED, "title": "twofactor_auth_configured", "type": "boolean", "_name_": "twofactor_auth_configured", "_required_": true}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The Security Identifier (SID) of the user if the account an `smb` account. The SMB server uses this value to check share access and for other purposes. ", "title": "sid", "_name_": "sid", "_required_": true}, "last_password REDACTED, "type": "string"}, {"type": "null"}], "description": "The date of the last password REDACTED, "title": "last_password REDACTED, "_name_": "last_password REDACTED, "_required_": true}, "password REDACTED}, {"type": "null"}], "description": "The age in days of the password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED}], "type": "array"}, {"type": "null"}], "description": "This contains hashes of the ten most recent password REDACTED, and is for enforcing password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}, "roles": {"description": "Array of roles assigned to this user's groups. Roles control administrative access to TrueNAS through the web UI and API.", "items": [{"type": "string"}], "title": "roles", "type": "array", "_name_": "roles", "_required_": true}, "api_key REDACTED, "items": [{"type": "integer"}], "title": "api_key REDACTED, "type": "array", "_name_": "api_key REDACTED, "_required_": true}, "password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": true}}, "required": ["id", "uid", "username", "unixhash", "smbhash", "full_name", "builtin", "group", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "password REDACTED, "title": "result", "type": "object", "description": "The updated user account with password REDACTED, "_name_": "result", "_required_": true, "_attrs_order_": ["id", "uid", "username", "unixhash", "smbhash", "home", "shell", "full_name", "builtin", "smb", "userns_idmap", "group", "groups", "password REDACTED, "ssh_password REDACTED, "sshpubkey", "locked", "sudo_commands", "sudo_commands_nopasswd", "email", "local", "immutable", "twofactor_auth_configured", "sid", "last_password REDACTED, "password REDACTED, "password REDACTED, "password REDACTED, "roles", "api_key REDACTED, "password REDACTED}]}, "virt.device.disk_choices": {"description": "Returns disk choices available for device type \"DISK\" for virtual machines. This includes\nboth available virt volumes and zvol choices. Disk choices for containers depend on the\nmounted file tree (paths).", "cli_description": "Returns disk choices available for device type \"DISK\" for virtual machines", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available disk devices and storage volumes for virtualization.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.device.export_disk_image": {"description": "Exports a zvol to a formatted VM disk image.\n\nUtilized qemu-img with the conversion functionality to export a zvol to\nany supported disk image format, from RAW -> ${OTHER}. The resulting file\nwill be set to inherit the permissions of the target directory.\n\nAs of this implementation it supports the following {format} options :\n\n- QCOW2\n- QED\n- RAW\n- VDI\n- VPC\n- VMDK\n\n`format` is a required parameter for the exported disk image\n`directory` is a required parameter for the export disk image\n`zvol` is the source for the disk image", "cli_description": "Exports a zvol to a formatted VM disk image", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"format": {"description": "Output format for the exported disk image (e.g., 'qcow2', 'raw').", "minLength": 1, "title": "format", "type": "string", "_name_": "format", "_required_": true}, "directory": {"description": "Directory path where the exported disk image will be saved.", "minLength": 1, "title": "directory", "type": "string", "_name_": "directory", "_required_": true}, "zvol": {"description": "Source ZFS volume to export as a disk image.", "minLength": 1, "title": "zvol", "type": "string", "_name_": "zvol", "_required_": true}}, "required": ["format", "directory", "zvol"], "title": "virt_device_export_disk_image", "type": "object", "description": "VirtDeviceExportDiskImageArgs parameters.", "_name_": "virt_device_export_disk_image", "_required_": true, "_attrs_order_": ["format", "directory", "zvol"]}], "returns": [{"description": "Whether the disk image export operation was successful.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.device.gpu_choices": {"description": "Provide choices for GPU devices.", "cli_description": "Provide choices for GPU devices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [{"description": "Type of GPU virtualization to filter available choices.", "enum": ["PHYSICAL", "MDEV", "MIG", "SRIOV"], "title": "gpu_type", "type": "string", "_name_": "gpu_type", "_required_": true}], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"bus": {"description": "PCI bus identifier for the GPU device.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "slot": {"description": "PCI slot identifier for the GPU device.", "title": "slot", "type": "string", "_name_": "slot", "_required_": true}, "description": {"description": "Human-readable description of the GPU device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "GPU vendor name. `null` if not available.", "title": "vendor", "_name_": "vendor", "_required_": false}, "pci": {"description": "Complete PCI address of the GPU device.", "title": "pci", "type": "string", "_name_": "pci", "_required_": true}}, "required": ["bus", "slot", "description", "pci"], "title": "GPUChoice", "type": "object", "_attrs_order_": ["bus", "slot", "description", "vendor", "pci"]}, "description": "Object of available GPU devices with their hardware information.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.device.import_disk_image": {"description": "Imports a specified disk image.\n\nUtilized qemu-img with the auto-detect functionality to auto-convert\nany supported disk image format to RAW -> ZVOL\n\nAs of this implementation it supports:\n\n- QCOW2\n- QED\n- RAW\n- VDI\n- VPC\n- VMDK\n\n`diskimg` is a required parameter for the incoming disk image\n`zvol` is the required target for the imported disk image", "cli_description": "Imports a specified disk image", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"diskimg": {"description": "Path to the disk image file to import.", "minLength": 1, "title": "diskimg", "type": "string", "_name_": "diskimg", "_required_": true}, "zvol": {"description": "Target ZFS volume path where the disk image will be imported.", "minLength": 1, "title": "zvol", "type": "string", "_name_": "zvol", "_required_": true}}, "required": ["diskimg", "zvol"], "title": "virt_device_import_disk_image", "type": "object", "description": "VirtDeviceImportDiskImageArgs parameters.", "_name_": "virt_device_import_disk_image", "_required_": true, "_attrs_order_": ["diskimg", "zvol"]}], "returns": [{"description": "Whether the disk image import operation was successful.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.device.nic_choices": {"description": "Returns choices for NIC device.", "cli_description": "Returns choices for NIC device", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [{"description": "Type of network interface to filter available choices.", "enum": ["BRIDGED", "MACVLAN"], "title": "nic_type", "type": "string", "_name_": "nic_type", "_required_": true}], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available network interfaces for the specified NIC type.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.device.pci_choices": {"description": "Returns choices for PCI devices valid for VM virt instances.", "cli_description": "Returns choices for PCI devices valid for VM virt instances", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [], "returns": [{"description": "Object of available PCI devices that can be passed through to virtual instances.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.device.usb_choices": {"description": "Provide choices for USB devices.", "cli_description": "Provide choices for USB devices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier for this device.", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier for this device.", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}, "bus": {"description": "USB bus number where this device is connected.", "title": "bus", "type": "integer", "_name_": "bus", "_required_": true}, "dev": {"description": "USB device number on the bus.", "title": "dev", "type": "integer", "_name_": "dev", "_required_": true}, "product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Product name of the USB device. `null` if not available.", "title": "product", "_name_": "product", "_required_": true}, "manufacturer": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Manufacturer name of the USB device. `null` if not available.", "title": "manufacturer", "_name_": "manufacturer", "_required_": true}}, "required": ["vendor_id", "product_id", "bus", "dev", "product", "manufacturer"], "title": "USBChoice", "type": "object", "_attrs_order_": ["vendor_id", "product_id", "bus", "dev", "product", "manufacturer"]}, "description": "Object of available USB devices with their hardware information.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.global.bridge_choices": {"description": "Bridge choices for virtualization purposes.\n\nEmpty means it will be managed/created automatically.", "cli_description": "Bridge choices for virtualization purposes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_GLOBAL_READ", "VIRT_GLOBAL_WRITE"], "accepts": [], "returns": [{"description": "Object of available network bridge interfaces and their configurations.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.global.config": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_GLOBAL_READ", "VIRT_GLOBAL_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization global configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Default storage pool when creating new instances and volumes.", "title": "pool", "_name_": "pool", "_required_": false}, "dataset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "ZFS dataset path used for virtualization data storage. `null` if not configured.", "title": "dataset", "_name_": "dataset", "_required_": false}, "storage_pools": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "default": null, "description": "ZFS pools to use as storage pools.", "title": "storage_pools", "_name_": "storage_pools", "_required_": false}, "bridge": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Network bridge interface for virtualized instance networking. `null` if not configured.", "title": "bridge", "_name_": "bridge", "_required_": false}, "v4_network": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IPv4 network CIDR for the virtualization bridge network. `null` if not configured.", "title": "v4_network", "_name_": "v4_network", "_required_": false}, "v6_network": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IPv6 network CIDR for the virtualization bridge network. `null` if not configured.", "title": "v6_network", "_name_": "v6_network", "_required_": false}, "state": {"anyOf": [{"enum": ["INITIALIZING", "INITIALIZED", "NO_POOL", "ERROR", "LOCKED"], "type": "string"}, {"type": "null"}], "default": null, "description": "Current operational state of the virtualization subsystem. `null` during initial setup.", "title": "state", "_name_": "state", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "pool", "dataset", "storage_pools", "bridge", "v4_network", "v6_network", "state"]}]}, "virt.global.get_network": {"description": "Details for the given network.", "cli_description": "Details for the given network", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_GLOBAL_READ", "VIRT_GLOBAL_WRITE"], "accepts": [{"description": "Name of the network configuration to retrieve.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"type": {"const": "BRIDGE", "description": "Type of network configuration (currently only bridge networks are supported).", "enum": ["BRIDGE"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "managed": {"description": "Whether this network is managed by the virtualization system.", "title": "managed", "type": "boolean", "_name_": "managed", "_required_": true}, "ipv4_address": {"description": "IPv4 address and CIDR of the bridge network.", "minLength": 1, "title": "ipv4_address", "type": "string", "_name_": "ipv4_address", "_required_": true}, "ipv4_nat": {"description": "Whether IPv4 Network Address Translation is enabled for this bridge.", "title": "ipv4_nat", "type": "boolean", "_name_": "ipv4_nat", "_required_": true}, "ipv6_address": {"description": "IPv6 address and CIDR of the bridge network.", "minLength": 1, "title": "ipv6_address", "type": "string", "_name_": "ipv6_address", "_required_": true}, "ipv6_nat": {"description": "Whether IPv6 Network Address Translation is enabled for this bridge.", "title": "ipv6_nat", "type": "boolean", "_name_": "ipv6_nat", "_required_": true}}, "required": ["type", "managed", "ipv4_address", "ipv4_nat", "ipv6_address", "ipv6_nat"], "title": "result", "type": "object", "description": "VirtGlobalGetNetworkResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["type", "managed", "ipv4_address", "ipv4_nat", "ipv6_address", "ipv6_nat"]}]}, "virt.global.pool_choices": {"description": "Pool choices for virtualization purposes.", "cli_description": "Pool choices for virtualization purposes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_GLOBAL_READ", "VIRT_GLOBAL_WRITE"], "accepts": [], "returns": [{"description": "Object of available ZFS pools that can be used for virtualization storage.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.global.update": {"description": "Update global virtualization settings.\n\n`pool` which pool to use to store instances.\nNone will disable the service.\n\n`bridge` which bridge interface to use by default.\nNone means it will automatically create one.", "cli_description": "Update global virtualization settings", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_GLOBAL_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Default storage pool when creating new instances and volumes.", "title": "pool", "_name_": "pool", "_required_": false}, "bridge": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Network bridge interface for virtualized instance networking. `null` to disable.", "title": "bridge", "_name_": "bridge", "_required_": false}, "storage_pools": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "description": "ZFS pools to use as storage pools.", "title": "storage_pools", "_name_": "storage_pools", "_required_": false}, "v4_network": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IPv4 network CIDR for the virtualization bridge network. `null` to use default.", "title": "v4_network", "_name_": "v4_network", "_required_": false}, "v6_network": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "IPv6 network CIDR for the virtualization bridge network. `null` to use default.", "title": "v6_network", "_name_": "v6_network", "_required_": false}}, "title": "virt_global_update", "type": "object", "description": "VirtGlobalUpdateArgs parameters.", "_name_": "virt_global_update", "_required_": true, "_attrs_order_": ["pool", "bridge", "storage_pools", "v4_network", "v6_network"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization global configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "pool": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Default storage pool when creating new instances and volumes.", "title": "pool", "_name_": "pool", "_required_": false}, "dataset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "ZFS dataset path used for virtualization data storage. `null` if not configured.", "title": "dataset", "_name_": "dataset", "_required_": false}, "storage_pools": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "default": null, "description": "ZFS pools to use as storage pools.", "title": "storage_pools", "_name_": "storage_pools", "_required_": false}, "bridge": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Network bridge interface for virtualized instance networking. `null` if not configured.", "title": "bridge", "_name_": "bridge", "_required_": false}, "v4_network": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IPv4 network CIDR for the virtualization bridge network. `null` if not configured.", "title": "v4_network", "_name_": "v4_network", "_required_": false}, "v6_network": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "IPv6 network CIDR for the virtualization bridge network. `null` if not configured.", "title": "v6_network", "_name_": "v6_network", "_required_": false}, "state": {"anyOf": [{"enum": ["INITIALIZING", "INITIALIZED", "NO_POOL", "ERROR", "LOCKED"], "type": "string"}, {"type": "null"}], "default": null, "description": "Current operational state of the virtualization subsystem. `null` during initial setup.", "title": "state", "_name_": "state", "_required_": false}}, "required": ["id"], "title": "result", "type": "object", "description": "The updated virtualization global configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "pool", "dataset", "storage_pools", "bridge", "v4_network", "v6_network", "state"]}]}, "virt.instance.create": {"description": "Create a new virtualized instance.", "cli_description": "Create a new virtualized instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name for the new virtual instance.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "source_type": {"const": "IMAGE", "default": "IMAGE", "description": "Source type for instance creation.", "enum": ["IMAGE"], "title": "source_type", "type": "string", "_name_": "source_type", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool under which to allocate root filesystem. Must be one of the pools listed in virt.global.config output under \"storage_pools\". If None (default) then the pool specified in the global configuration will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}, "image": {"description": "Image identifier to use for creating the instance.", "maxLength": 200, "minLength": 1, "title": "image", "type": "string", "_name_": "image", "_required_": true}, "root_disk_size": {"default": 10, "description": "This can be specified when creating VMs so the root device's size can be configured. Root device for VMs is a sparse zvol and the field specifies space in GBs and defaults to 10 GBs.", "minimum": 5, "title": "root_disk_size", "type": "integer", "_name_": "root_disk_size", "_required_": false}, "root_disk_io_bus": {"default": "NVME", "description": "I/O bus type for the root disk (defaults to NVME for best performance).", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI"], "title": "root_disk_io_bus", "type": "string", "_name_": "root_disk_io_bus", "_required_": false}, "remote": {"const": "LINUX_CONTAINERS", "default": "LINUX_CONTAINERS", "description": "Remote image source to use.", "enum": ["LINUX_CONTAINERS"], "title": "remote", "type": "string", "_name_": "remote", "_required_": false}, "instance_type": {"const": "CONTAINER", "default": "CONTAINER", "description": "Type of instance to create.", "enum": ["CONTAINER"], "title": "instance_type", "type": "string", "_name_": "instance_type", "_required_": false}, "environment": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"type": "null"}], "default": null, "description": "Environment variables to set inside the instance.", "title": "environment", "_name_": "environment", "_required_": false}, "autostart": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": true, "description": "Whether the instance should automatically start when the host boots.", "title": "autostart", "_name_": "autostart", "_required_": false}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "CPU allocation specification or `null` for automatic allocation.", "title": "cpu", "_name_": "cpu", "_required_": false}, "devices": {"anyOf": [{"items": [{"discriminator": {"mapping": {"CDROM": "#/$defs/CDROM", "DISK": "#/$defs/Disk", "GPU": "#/$defs/GPU", "NIC": "#/$defs/NIC", "PCI": "#/$defs/PCI", "PROXY": "#/$defs/Proxy", "TPM": "#/$defs/TPM", "USB": "#/$defs/USB"}, "propertyName": "dev_type"}, "oneOf": [{"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "For CONTAINER instances, this would be a valid pool path. For VM instances, it can be a valid zvol path or an incus storage volume name.", "title": "source", "_name_": "source", "_required_": false}, "destination": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Target path where the disk appears inside the virtualized instance.", "title": "destination", "_name_": "destination", "_required_": false}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this disk device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}, "io_bus": {"default": null, "description": "Storage bus type for optimal performance and compatibility.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "io_bus", "_name_": "io_bus", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool in which the device is located. This must be one of the storage pools listed in virt.global.config output.\nIf this is set to None during device creation, then the default storage pool defined in virt.global.config will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}}, "required": ["dev_type"], "title": "Disk", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "destination", "boot_priority", "io_bus", "storage_pool"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "GPU", "description": "Device type identifier for graphics processing units.", "enum": ["GPU"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "gpu_type": {"description": "Type of GPU virtualization (physical passthrough, mediated device, etc.).", "enum": ["PHYSICAL", "MDEV", "MIG", "SRIOV"], "title": "gpu_type", "type": "string", "_name_": "gpu_type", "_required_": true}, "id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique identifier for the GPU device.", "title": "id", "_name_": "id", "_required_": false}, "gid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Group ID for device permissions inside the container.", "title": "gid", "_name_": "gid", "_required_": false}, "uid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "User ID for device permissions inside the container.", "title": "uid", "_name_": "uid", "_required_": false}, "mode": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Permission mode for device access (e.g., '660').", "title": "mode", "_name_": "mode", "_required_": false}, "mdev": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Mediated device identifier for GPU virtualization.", "title": "mdev", "_name_": "mdev", "_required_": false}, "mig_uuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Multi-Instance GPU UUID for NVIDIA GPU partitioning.", "title": "mig_uuid", "_name_": "mig_uuid", "_required_": false}, "pci": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PCI address of the GPU device on the host system.", "title": "pci", "_name_": "pci", "_required_": false}, "productid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product identifier for GPU device matching.", "title": "productid", "_name_": "productid", "_required_": false}, "vendorid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Vendor identifier for GPU device matching.", "title": "vendorid", "_name_": "vendorid", "_required_": false}}, "required": ["dev_type", "gpu_type"], "title": "GPU", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "gpu_type", "id", "gid", "uid", "mode", "mdev", "mig_uuid", "pci", "productid", "vendorid"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PROXY", "description": "Device type identifier for network port forwarding.", "enum": ["PROXY"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source_proto": {"description": "Network protocol (TCP or UDP) for the source connection.", "enum": ["UDP", "TCP"], "title": "source_proto", "type": "string", "_name_": "source_proto", "_required_": true}, "source_port": {"description": "Source port number on the host system to forward from.", "maximum": 65535, "minimum": 1, "title": "source_port", "type": "integer", "_name_": "source_port", "_required_": true}, "dest_proto": {"description": "Network protocol (TCP or UDP) for the destination connection.", "enum": ["UDP", "TCP"], "title": "dest_proto", "type": "string", "_name_": "dest_proto", "_required_": true}, "dest_port": {"description": "Destination port number inside the virtualized instance.", "maximum": 65535, "minimum": 1, "title": "dest_port", "type": "integer", "_name_": "dest_port", "_required_": true}}, "required": ["dev_type", "source_proto", "source_port", "dest_proto", "dest_port"], "title": "Proxy", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source_proto", "source_port", "dest_proto", "dest_port"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "TPM", "description": "Device type identifier for Trusted Platform Module devices.", "enum": ["TPM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Path to the TPM device on the host system.", "title": "path", "_name_": "path", "_required_": false}, "pathrm": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Resource manager path for TPM device access.", "title": "pathrm", "_name_": "pathrm", "_required_": false}}, "required": ["dev_type"], "title": "TPM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "path", "pathrm"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "bus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB bus number on the host system.", "title": "bus", "_name_": "bus", "_required_": false}, "dev": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB device number on the specified bus.", "title": "dev", "_name_": "dev", "_required_": false}, "product_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB product identifier for device matching.", "title": "product_id", "_name_": "product_id", "_required_": false}, "vendor_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB vendor identifier for device matching.", "title": "vendor_id", "_name_": "vendor_id", "_required_": false}}, "required": ["dev_type"], "title": "USB", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "bus", "dev", "product_id", "vendor_id"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "network": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the network to connect this NIC to.", "title": "network", "_name_": "network", "_required_": false}, "nic_type": {"anyOf": [{"enum": ["BRIDGED", "MACVLAN"], "type": "string"}, {"type": "null"}], "default": null, "description": "Type of network interface (bridged or macvlan).", "title": "nic_type", "_name_": "nic_type", "_required_": false}, "parent": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Parent network interface on the host system.", "title": "parent", "_name_": "parent", "_required_": false}, "mac": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generated.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dev_type"], "title": "NIC", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "network", "nic_type", "parent", "mac"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PCI", "description": "Device type identifier for PCI device passthrough.", "enum": ["PCI"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "address": {"description": "PCI bus address of the device to pass through to the virtualized instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}}, "required": ["dev_type", "address"], "title": "PCI", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "address"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD optical drives.", "enum": ["CDROM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"description": "Path to the ISO image file or physical optical drive to mount.", "minLength": 1, "title": "source", "type": "string", "_name_": "source", "_required_": true}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this optical device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}}, "required": ["dev_type", "source"], "title": "CDROM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "boot_priority"]}]}], "type": "array"}, {"type": "null"}], "default": null, "description": "Array of devices to attach to the instance.", "title": "devices", "_name_": "devices", "_required_": false}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Memory allocation in bytes or `null` for automatic allocation.", "title": "memory", "_name_": "memory", "_required_": false}, "privileged_mode": {"default": false, "description": "This is only valid for containers and should only be set when container instance which is to be deployed is to run in a privileged mode.", "title": "privileged_mode", "type": "boolean", "_name_": "privileged_mode", "_required_": false}}, "required": ["name", "image"], "title": "virt_instance_create", "type": "object", "description": "VirtInstanceCreateArgs parameters.", "_name_": "virt_instance_create", "_required_": true, "_attrs_order_": ["name", "source_type", "storage_pool", "image", "root_disk_size", "root_disk_io_bus", "remote", "instance_type", "environment", "autostart", "cpu", "devices", "memory", "privileged_mode"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtual instance.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the virtual instance.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "CONTAINER", "description": "Type of virtual instance.", "enum": ["CONTAINER", "VM"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "status": {"description": "Current operational status of the virtual instance.", "enum": ["RUNNING", "STOPPED", "UNKNOWN", "ERROR", "FROZEN", "STARTING", "STOPPING", "FREEZING", "THAWED", "ABORTING"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "CPU configuration string or `null` for default allocation.", "title": "cpu", "_name_": "cpu", "_required_": true}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Memory allocation in bytes or `null` for default allocation.", "title": "memory", "_name_": "memory", "_required_": true}, "autostart": {"description": "Whether the instance automatically starts when the host boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": true}, "environment": {"additionalProperties": {"type": "string"}, "description": "Environment variables to set inside the instance.", "title": "environment", "type": "object", "_name_": "environment", "_required_": true}, "aliases": {"description": "Array of IP aliases configured for the instance.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "IP address for the virtual instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Network mask in CIDR notation.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "VirtInstanceAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "image": {"additionalProperties": false, "properties": {"architecture": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hardware architecture of the image (e.g., amd64, arm64).", "title": "architecture", "_name_": "architecture", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the image.", "title": "description", "_name_": "description", "_required_": true}, "os": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Operating system family of the image.", "title": "os", "_name_": "os", "_required_": true}, "release": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Version or release name of the operating system.", "title": "release", "_name_": "release", "_required_": true}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique serial identifier for the image.", "title": "serial", "_name_": "serial", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of image (container, virtual-machine, etc.).", "title": "type", "_name_": "type", "_required_": true}, "variant": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Image variant (default, cloud, minimal, etc.).", "title": "variant", "_name_": "variant", "_required_": true}, "secureboot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the image supports UEFI Secure Boot.", "title": "secureboot", "_name_": "secureboot", "_required_": true}}, "required": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"], "title": "image", "type": "object", "description": "Image information used to create this instance.", "_name_": "image", "_required_": true, "_attrs_order_": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"]}, "userns_idmap": {"anyOf": [{"additionalProperties": false, "properties": {"uid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "User ID mapping configuration for user namespace isolation.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "Group ID mapping configuration for user namespace isolation.", "title": "gid", "_name_": "gid", "_required_": true}}, "required": ["uid", "gid"], "title": "UserNsIdmap", "type": "object", "_attrs_order_": ["uid", "gid"]}, {"type": "null"}], "description": "User namespace ID mapping configuration for privilege isolation.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": true}, "raw": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Raw low-level configuration options (advanced use only).", "title": "raw", "_name_": "raw", "_required_": true}, "vnc_enabled": {"description": "Whether VNC remote access is enabled for the instance.", "title": "vnc_enabled", "type": "boolean", "_name_": "vnc_enabled", "_required_": true}, "vnc_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "TCP port number for VNC connections or `null` if VNC is disabled.", "title": "vnc_port", "_name_": "vnc_port", "_required_": true}, "vnc_password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "vnc_password REDACTED, "_name_": "vnc_password REDACTED, "_required_": true}, "secure_boot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether UEFI Secure Boot is enabled (VMs only) or `null` for containers.", "title": "secure_boot", "_name_": "secure_boot", "_required_": true}, "privileged_mode": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the container runs in privileged mode or `null` for VMs.", "title": "privileged_mode", "_name_": "privileged_mode", "_required_": true}, "root_disk_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the root disk in GB or `null` for default size.", "title": "root_disk_size", "_name_": "root_disk_size", "_required_": true}, "root_disk_io_bus": {"description": "I/O bus type for the root disk or `null` for default.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "root_disk_io_bus", "_name_": "root_disk_io_bus", "_required_": true}, "storage_pool": {"description": "Storage pool in which the root of the instance is located.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}}, "required": ["id", "name", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"], "title": "result", "type": "object", "description": "The created virtual instance configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"]}]}, "virt.instance.delete": {"description": "Delete an instance.", "cli_description": "Delete an instance", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to delete.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the virtual instance is successfully deleted.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.device_add": {"description": "Add a device to an instance.", "cli_description": "Add a device to an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to add device to.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"description": "Device configuration to add to the instance.", "discriminator": {"mapping": {"CDROM": "#/$defs/CDROM", "DISK": "#/$defs/Disk", "GPU": "#/$defs/GPU", "NIC": "#/$defs/NIC", "PCI": "#/$defs/PCI", "PROXY": "#/$defs/Proxy", "TPM": "#/$defs/TPM", "USB": "#/$defs/USB"}, "propertyName": "dev_type"}, "oneOf": [{"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "For CONTAINER instances, this would be a valid pool path. For VM instances, it can be a valid zvol path or an incus storage volume name.", "title": "source", "_name_": "source", "_required_": false}, "destination": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Target path where the disk appears inside the virtualized instance.", "title": "destination", "_name_": "destination", "_required_": false}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this disk device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}, "io_bus": {"default": null, "description": "Storage bus type for optimal performance and compatibility.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "io_bus", "_name_": "io_bus", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool in which the device is located. This must be one of the storage pools listed in virt.global.config output.\nIf this is set to None during device creation, then the default storage pool defined in virt.global.config will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}}, "required": ["dev_type"], "title": "Disk", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "destination", "boot_priority", "io_bus", "storage_pool"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "GPU", "description": "Device type identifier for graphics processing units.", "enum": ["GPU"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "gpu_type": {"description": "Type of GPU virtualization (physical passthrough, mediated device, etc.).", "enum": ["PHYSICAL", "MDEV", "MIG", "SRIOV"], "title": "gpu_type", "type": "string", "_name_": "gpu_type", "_required_": true}, "id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique identifier for the GPU device.", "title": "id", "_name_": "id", "_required_": false}, "gid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Group ID for device permissions inside the container.", "title": "gid", "_name_": "gid", "_required_": false}, "uid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "User ID for device permissions inside the container.", "title": "uid", "_name_": "uid", "_required_": false}, "mode": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Permission mode for device access (e.g., '660').", "title": "mode", "_name_": "mode", "_required_": false}, "mdev": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Mediated device identifier for GPU virtualization.", "title": "mdev", "_name_": "mdev", "_required_": false}, "mig_uuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Multi-Instance GPU UUID for NVIDIA GPU partitioning.", "title": "mig_uuid", "_name_": "mig_uuid", "_required_": false}, "pci": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PCI address of the GPU device on the host system.", "title": "pci", "_name_": "pci", "_required_": false}, "productid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product identifier for GPU device matching.", "title": "productid", "_name_": "productid", "_required_": false}, "vendorid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Vendor identifier for GPU device matching.", "title": "vendorid", "_name_": "vendorid", "_required_": false}}, "required": ["dev_type", "gpu_type"], "title": "GPU", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "gpu_type", "id", "gid", "uid", "mode", "mdev", "mig_uuid", "pci", "productid", "vendorid"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PROXY", "description": "Device type identifier for network port forwarding.", "enum": ["PROXY"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source_proto": {"description": "Network protocol (TCP or UDP) for the source connection.", "enum": ["UDP", "TCP"], "title": "source_proto", "type": "string", "_name_": "source_proto", "_required_": true}, "source_port": {"description": "Source port number on the host system to forward from.", "maximum": 65535, "minimum": 1, "title": "source_port", "type": "integer", "_name_": "source_port", "_required_": true}, "dest_proto": {"description": "Network protocol (TCP or UDP) for the destination connection.", "enum": ["UDP", "TCP"], "title": "dest_proto", "type": "string", "_name_": "dest_proto", "_required_": true}, "dest_port": {"description": "Destination port number inside the virtualized instance.", "maximum": 65535, "minimum": 1, "title": "dest_port", "type": "integer", "_name_": "dest_port", "_required_": true}}, "required": ["dev_type", "source_proto", "source_port", "dest_proto", "dest_port"], "title": "Proxy", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source_proto", "source_port", "dest_proto", "dest_port"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "TPM", "description": "Device type identifier for Trusted Platform Module devices.", "enum": ["TPM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Path to the TPM device on the host system.", "title": "path", "_name_": "path", "_required_": false}, "pathrm": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Resource manager path for TPM device access.", "title": "pathrm", "_name_": "pathrm", "_required_": false}}, "required": ["dev_type"], "title": "TPM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "path", "pathrm"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "bus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB bus number on the host system.", "title": "bus", "_name_": "bus", "_required_": false}, "dev": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB device number on the specified bus.", "title": "dev", "_name_": "dev", "_required_": false}, "product_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB product identifier for device matching.", "title": "product_id", "_name_": "product_id", "_required_": false}, "vendor_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB vendor identifier for device matching.", "title": "vendor_id", "_name_": "vendor_id", "_required_": false}}, "required": ["dev_type"], "title": "USB", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "bus", "dev", "product_id", "vendor_id"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "network": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the network to connect this NIC to.", "title": "network", "_name_": "network", "_required_": false}, "nic_type": {"anyOf": [{"enum": ["BRIDGED", "MACVLAN"], "type": "string"}, {"type": "null"}], "default": null, "description": "Type of network interface (bridged or macvlan).", "title": "nic_type", "_name_": "nic_type", "_required_": false}, "parent": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Parent network interface on the host system.", "title": "parent", "_name_": "parent", "_required_": false}, "mac": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generated.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dev_type"], "title": "NIC", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "network", "nic_type", "parent", "mac"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PCI", "description": "Device type identifier for PCI device passthrough.", "enum": ["PCI"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "address": {"description": "PCI bus address of the device to pass through to the virtualized instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}}, "required": ["dev_type", "address"], "title": "PCI", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "address"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD optical drives.", "enum": ["CDROM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"description": "Path to the ISO image file or physical optical drive to mount.", "minLength": 1, "title": "source", "type": "string", "_name_": "source", "_required_": true}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this optical device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}}, "required": ["dev_type", "source"], "title": "CDROM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "boot_priority"]}], "title": "device", "_name_": "device", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the device is successfully added.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.device_delete": {"description": "Delete a device from an instance.", "cli_description": "Delete a device from an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_INSTANCE_DELETE"], "accepts": [{"description": "ID of the virtual instance to remove device from.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"description": "Name of the device to remove.", "title": "name", "type": "string", "_name_": "name", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the device is successfully removed.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.device_list": {"description": "List all devices associated to an instance.", "cli_description": "List all devices associated to an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to list devices for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of devices attached to the virtual instance.", "items": [{"discriminator": {"mapping": {"CDROM": "#/$defs/CDROM", "DISK": "#/$defs/Disk", "GPU": "#/$defs/GPU", "NIC": "#/$defs/NIC", "PCI": "#/$defs/PCI", "PROXY": "#/$defs/Proxy", "TPM": "#/$defs/TPM", "USB": "#/$defs/USB"}, "propertyName": "dev_type"}, "oneOf": [{"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "For CONTAINER instances, this would be a valid pool path. For VM instances, it can be a valid zvol path or an incus storage volume name.", "title": "source", "_name_": "source", "_required_": false}, "destination": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Target path where the disk appears inside the virtualized instance.", "title": "destination", "_name_": "destination", "_required_": false}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this disk device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}, "io_bus": {"default": null, "description": "Storage bus type for optimal performance and compatibility.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "io_bus", "_name_": "io_bus", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool in which the device is located. This must be one of the storage pools listed in virt.global.config output.\nIf this is set to None during device creation, then the default storage pool defined in virt.global.config will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}}, "required": ["dev_type"], "title": "Disk", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "destination", "boot_priority", "io_bus", "storage_pool"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "GPU", "description": "Device type identifier for graphics processing units.", "enum": ["GPU"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "gpu_type": {"description": "Type of GPU virtualization (physical passthrough, mediated device, etc.).", "enum": ["PHYSICAL", "MDEV", "MIG", "SRIOV"], "title": "gpu_type", "type": "string", "_name_": "gpu_type", "_required_": true}, "id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique identifier for the GPU device.", "title": "id", "_name_": "id", "_required_": false}, "gid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Group ID for device permissions inside the container.", "title": "gid", "_name_": "gid", "_required_": false}, "uid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "User ID for device permissions inside the container.", "title": "uid", "_name_": "uid", "_required_": false}, "mode": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Permission mode for device access (e.g., '660').", "title": "mode", "_name_": "mode", "_required_": false}, "mdev": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Mediated device identifier for GPU virtualization.", "title": "mdev", "_name_": "mdev", "_required_": false}, "mig_uuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Multi-Instance GPU UUID for NVIDIA GPU partitioning.", "title": "mig_uuid", "_name_": "mig_uuid", "_required_": false}, "pci": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PCI address of the GPU device on the host system.", "title": "pci", "_name_": "pci", "_required_": false}, "productid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product identifier for GPU device matching.", "title": "productid", "_name_": "productid", "_required_": false}, "vendorid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Vendor identifier for GPU device matching.", "title": "vendorid", "_name_": "vendorid", "_required_": false}}, "required": ["dev_type", "gpu_type"], "title": "GPU", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "gpu_type", "id", "gid", "uid", "mode", "mdev", "mig_uuid", "pci", "productid", "vendorid"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PROXY", "description": "Device type identifier for network port forwarding.", "enum": ["PROXY"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source_proto": {"description": "Network protocol (TCP or UDP) for the source connection.", "enum": ["UDP", "TCP"], "title": "source_proto", "type": "string", "_name_": "source_proto", "_required_": true}, "source_port": {"description": "Source port number on the host system to forward from.", "maximum": 65535, "minimum": 1, "title": "source_port", "type": "integer", "_name_": "source_port", "_required_": true}, "dest_proto": {"description": "Network protocol (TCP or UDP) for the destination connection.", "enum": ["UDP", "TCP"], "title": "dest_proto", "type": "string", "_name_": "dest_proto", "_required_": true}, "dest_port": {"description": "Destination port number inside the virtualized instance.", "maximum": 65535, "minimum": 1, "title": "dest_port", "type": "integer", "_name_": "dest_port", "_required_": true}}, "required": ["dev_type", "source_proto", "source_port", "dest_proto", "dest_port"], "title": "Proxy", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source_proto", "source_port", "dest_proto", "dest_port"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "TPM", "description": "Device type identifier for Trusted Platform Module devices.", "enum": ["TPM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Path to the TPM device on the host system.", "title": "path", "_name_": "path", "_required_": false}, "pathrm": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Resource manager path for TPM device access.", "title": "pathrm", "_name_": "pathrm", "_required_": false}}, "required": ["dev_type"], "title": "TPM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "path", "pathrm"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "bus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB bus number on the host system.", "title": "bus", "_name_": "bus", "_required_": false}, "dev": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB device number on the specified bus.", "title": "dev", "_name_": "dev", "_required_": false}, "product_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB product identifier for device matching.", "title": "product_id", "_name_": "product_id", "_required_": false}, "vendor_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB vendor identifier for device matching.", "title": "vendor_id", "_name_": "vendor_id", "_required_": false}}, "required": ["dev_type"], "title": "USB", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "bus", "dev", "product_id", "vendor_id"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "network": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the network to connect this NIC to.", "title": "network", "_name_": "network", "_required_": false}, "nic_type": {"anyOf": [{"enum": ["BRIDGED", "MACVLAN"], "type": "string"}, {"type": "null"}], "default": null, "description": "Type of network interface (bridged or macvlan).", "title": "nic_type", "_name_": "nic_type", "_required_": false}, "parent": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Parent network interface on the host system.", "title": "parent", "_name_": "parent", "_required_": false}, "mac": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generated.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dev_type"], "title": "NIC", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "network", "nic_type", "parent", "mac"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PCI", "description": "Device type identifier for PCI device passthrough.", "enum": ["PCI"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "address": {"description": "PCI bus address of the device to pass through to the virtualized instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}}, "required": ["dev_type", "address"], "title": "PCI", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "address"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD optical drives.", "enum": ["CDROM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"description": "Path to the ISO image file or physical optical drive to mount.", "minLength": 1, "title": "source", "type": "string", "_name_": "source", "_required_": true}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this optical device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}}, "required": ["dev_type", "source"], "title": "CDROM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "boot_priority"]}]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "virt.instance.device_update": {"description": "Update a device in an instance.", "cli_description": "Update a device in an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to update device for.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"description": "Updated device configuration.", "discriminator": {"mapping": {"CDROM": "#/$defs/CDROM", "DISK": "#/$defs/Disk", "GPU": "#/$defs/GPU", "NIC": "#/$defs/NIC", "PCI": "#/$defs/PCI", "PROXY": "#/$defs/Proxy", "TPM": "#/$defs/TPM", "USB": "#/$defs/USB"}, "propertyName": "dev_type"}, "oneOf": [{"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "For CONTAINER instances, this would be a valid pool path. For VM instances, it can be a valid zvol path or an incus storage volume name.", "title": "source", "_name_": "source", "_required_": false}, "destination": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Target path where the disk appears inside the virtualized instance.", "title": "destination", "_name_": "destination", "_required_": false}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this disk device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}, "io_bus": {"default": null, "description": "Storage bus type for optimal performance and compatibility.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "io_bus", "_name_": "io_bus", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool in which the device is located. This must be one of the storage pools listed in virt.global.config output.\nIf this is set to None during device creation, then the default storage pool defined in virt.global.config will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}}, "required": ["dev_type"], "title": "Disk", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "destination", "boot_priority", "io_bus", "storage_pool"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "GPU", "description": "Device type identifier for graphics processing units.", "enum": ["GPU"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "gpu_type": {"description": "Type of GPU virtualization (physical passthrough, mediated device, etc.).", "enum": ["PHYSICAL", "MDEV", "MIG", "SRIOV"], "title": "gpu_type", "type": "string", "_name_": "gpu_type", "_required_": true}, "id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique identifier for the GPU device.", "title": "id", "_name_": "id", "_required_": false}, "gid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Group ID for device permissions inside the container.", "title": "gid", "_name_": "gid", "_required_": false}, "uid": {"anyOf": [{"maximum": 90000000, "minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "User ID for device permissions inside the container.", "title": "uid", "_name_": "uid", "_required_": false}, "mode": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Permission mode for device access (e.g., '660').", "title": "mode", "_name_": "mode", "_required_": false}, "mdev": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Mediated device identifier for GPU virtualization.", "title": "mdev", "_name_": "mdev", "_required_": false}, "mig_uuid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Multi-Instance GPU UUID for NVIDIA GPU partitioning.", "title": "mig_uuid", "_name_": "mig_uuid", "_required_": false}, "pci": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "PCI address of the GPU device on the host system.", "title": "pci", "_name_": "pci", "_required_": false}, "productid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Product identifier for GPU device matching.", "title": "productid", "_name_": "productid", "_required_": false}, "vendorid": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Vendor identifier for GPU device matching.", "title": "vendorid", "_name_": "vendorid", "_required_": false}}, "required": ["dev_type", "gpu_type"], "title": "GPU", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "gpu_type", "id", "gid", "uid", "mode", "mdev", "mig_uuid", "pci", "productid", "vendorid"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PROXY", "description": "Device type identifier for network port forwarding.", "enum": ["PROXY"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source_proto": {"description": "Network protocol (TCP or UDP) for the source connection.", "enum": ["UDP", "TCP"], "title": "source_proto", "type": "string", "_name_": "source_proto", "_required_": true}, "source_port": {"description": "Source port number on the host system to forward from.", "maximum": 65535, "minimum": 1, "title": "source_port", "type": "integer", "_name_": "source_port", "_required_": true}, "dest_proto": {"description": "Network protocol (TCP or UDP) for the destination connection.", "enum": ["UDP", "TCP"], "title": "dest_proto", "type": "string", "_name_": "dest_proto", "_required_": true}, "dest_port": {"description": "Destination port number inside the virtualized instance.", "maximum": 65535, "minimum": 1, "title": "dest_port", "type": "integer", "_name_": "dest_port", "_required_": true}}, "required": ["dev_type", "source_proto", "source_port", "dest_proto", "dest_port"], "title": "Proxy", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source_proto", "source_port", "dest_proto", "dest_port"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "TPM", "description": "Device type identifier for Trusted Platform Module devices.", "enum": ["TPM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "path": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Path to the TPM device on the host system.", "title": "path", "_name_": "path", "_required_": false}, "pathrm": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Resource manager path for TPM device access.", "title": "pathrm", "_name_": "pathrm", "_required_": false}}, "required": ["dev_type"], "title": "TPM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "path", "pathrm"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "bus": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB bus number on the host system.", "title": "bus", "_name_": "bus", "_required_": false}, "dev": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "USB device number on the specified bus.", "title": "dev", "_name_": "dev", "_required_": false}, "product_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB product identifier for device matching.", "title": "product_id", "_name_": "product_id", "_required_": false}, "vendor_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "USB vendor identifier for device matching.", "title": "vendor_id", "_name_": "vendor_id", "_required_": false}}, "required": ["dev_type"], "title": "USB", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "bus", "dev", "product_id", "vendor_id"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "network": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name of the network to connect this NIC to.", "title": "network", "_name_": "network", "_required_": false}, "nic_type": {"anyOf": [{"enum": ["BRIDGED", "MACVLAN"], "type": "string"}, {"type": "null"}], "default": null, "description": "Type of network interface (bridged or macvlan).", "title": "nic_type", "_name_": "nic_type", "_required_": false}, "parent": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Parent network interface on the host system.", "title": "parent", "_name_": "parent", "_required_": false}, "mac": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generated.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dev_type"], "title": "NIC", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "network", "nic_type", "parent", "mac"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "PCI", "description": "Device type identifier for PCI device passthrough.", "enum": ["PCI"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "address": {"description": "PCI bus address of the device to pass through to the virtualized instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}}, "required": ["dev_type", "address"], "title": "PCI", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "address"]}, {"additionalProperties": false, "properties": {"name": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional human-readable name for the virtualization device.", "title": "name", "_name_": "name", "_required_": false}, "description": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Optional description explaining the purpose or configuration of this device.", "title": "description", "_name_": "description", "_required_": false}, "readonly": {"default": false, "description": "Whether the device should be mounted in read-only mode.", "title": "readonly", "type": "boolean", "_name_": "readonly", "_required_": false}, "dev_type": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD optical drives.", "enum": ["CDROM"], "title": "dev_type", "type": "string", "_name_": "dev_type", "_required_": true}, "source": {"description": "Path to the ISO image file or physical optical drive to mount.", "minLength": 1, "title": "source", "type": "string", "_name_": "source", "_required_": true}, "boot_priority": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Boot priority for this optical device. Lower numbers boot first. `null` means non-bootable.", "title": "boot_priority", "_name_": "boot_priority", "_required_": false}}, "required": ["dev_type", "source"], "title": "CDROM", "type": "object", "_attrs_order_": ["name", "description", "readonly", "dev_type", "source", "boot_priority"]}], "title": "device", "_name_": "device", "_required_": true}], "returns": [{"const": true, "description": "Returns `true` when the device is successfully updated.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtual instance.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the virtual instance.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "CONTAINER", "description": "Type of virtual instance.", "enum": ["CONTAINER", "VM"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "status": {"description": "Current operational status of the virtual instance.", "enum": ["RUNNING", "STOPPED", "UNKNOWN", "ERROR", "FROZEN", "STARTING", "STOPPING", "FREEZING", "THAWED", "ABORTING"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "CPU configuration string or `null` for default allocation.", "title": "cpu", "_name_": "cpu", "_required_": true}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Memory allocation in bytes or `null` for default allocation.", "title": "memory", "_name_": "memory", "_required_": true}, "autostart": {"description": "Whether the instance automatically starts when the host boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": true}, "environment": {"additionalProperties": {"type": "string"}, "description": "Environment variables to set inside the instance.", "title": "environment", "type": "object", "_name_": "environment", "_required_": true}, "aliases": {"description": "Array of IP aliases configured for the instance.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "IP address for the virtual instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Network mask in CIDR notation.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "VirtInstanceAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "image": {"additionalProperties": false, "properties": {"architecture": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hardware architecture of the image (e.g., amd64, arm64).", "title": "architecture", "_name_": "architecture", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the image.", "title": "description", "_name_": "description", "_required_": true}, "os": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Operating system family of the image.", "title": "os", "_name_": "os", "_required_": true}, "release": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Version or release name of the operating system.", "title": "release", "_name_": "release", "_required_": true}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique serial identifier for the image.", "title": "serial", "_name_": "serial", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of image (container, virtual-machine, etc.).", "title": "type", "_name_": "type", "_required_": true}, "variant": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Image variant (default, cloud, minimal, etc.).", "title": "variant", "_name_": "variant", "_required_": true}, "secureboot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the image supports UEFI Secure Boot.", "title": "secureboot", "_name_": "secureboot", "_required_": true}}, "required": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"], "title": "image", "type": "object", "description": "Image information used to create this instance.", "_name_": "image", "_required_": true, "_attrs_order_": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"]}, "userns_idmap": {"anyOf": [{"additionalProperties": false, "properties": {"uid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "User ID mapping configuration for user namespace isolation.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "Group ID mapping configuration for user namespace isolation.", "title": "gid", "_name_": "gid", "_required_": true}}, "required": ["uid", "gid"], "title": "UserNsIdmap", "type": "object", "_attrs_order_": ["uid", "gid"]}, {"type": "null"}], "description": "User namespace ID mapping configuration for privilege isolation.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": true}, "raw": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Raw low-level configuration options (advanced use only).", "title": "raw", "_name_": "raw", "_required_": true}, "vnc_enabled": {"description": "Whether VNC remote access is enabled for the instance.", "title": "vnc_enabled", "type": "boolean", "_name_": "vnc_enabled", "_required_": true}, "vnc_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "TCP port number for VNC connections or `null` if VNC is disabled.", "title": "vnc_port", "_name_": "vnc_port", "_required_": true}, "vnc_password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "vnc_password REDACTED, "_name_": "vnc_password REDACTED, "_required_": true}, "secure_boot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether UEFI Secure Boot is enabled (VMs only) or `null` for containers.", "title": "secure_boot", "_name_": "secure_boot", "_required_": true}, "privileged_mode": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the container runs in privileged mode or `null` for VMs.", "title": "privileged_mode", "_name_": "privileged_mode", "_required_": true}, "root_disk_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the root disk in GB or `null` for default size.", "title": "root_disk_size", "_name_": "root_disk_size", "_required_": true}, "root_disk_io_bus": {"description": "I/O bus type for the root disk or `null` for default.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "root_disk_io_bus", "_name_": "root_disk_io_bus", "_required_": true}, "storage_pool": {"description": "Storage pool in which the root of the instance is located.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}}, "required": ["id", "name", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"]}]}, "virt.instance.image_choices": {"description": "Provide choices for instance image from a remote repository.", "cli_description": "Provide choices for instance image from a remote repository", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"remote": {"const": "LINUX_CONTAINERS", "default": "LINUX_CONTAINERS", "description": "Remote image source to query for available images.", "enum": ["LINUX_CONTAINERS"], "title": "remote", "type": "string", "_name_": "remote", "_required_": false}}, "title": "virt_instances_image_choices", "type": "object", "default": {"remote": "LINUX_CONTAINERS"}, "description": "Options for filtering available images.", "_name_": "virt_instances_image_choices", "_required_": false, "_attrs_order_": ["remote"]}], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"label": {"description": "Human-readable label for the image.", "title": "label", "type": "string", "_name_": "label", "_required_": true}, "os": {"description": "Operating system family of the image.", "title": "os", "type": "string", "_name_": "os", "_required_": true}, "release": {"description": "Version or release name of the operating system.", "title": "release", "type": "string", "_name_": "release", "_required_": true}, "archs": {"description": "Array of supported hardware architectures.", "items": [{"type": "string"}], "title": "archs", "type": "array", "_name_": "archs", "_required_": true}, "variant": {"description": "Image variant (default, cloud, minimal, etc.).", "title": "variant", "type": "string", "_name_": "variant", "_required_": true}, "instance_types": {"description": "Array of instance types this image supports.", "items": [{"enum": ["CONTAINER", "VM"], "type": "string"}], "title": "instance_types", "type": "array", "_name_": "instance_types", "_required_": true}, "secureboot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the image supports UEFI Secure Boot or `null` if not applicable.", "title": "secureboot", "_name_": "secureboot", "_required_": true}}, "required": ["label", "os", "release", "archs", "variant", "instance_types", "secureboot"], "title": "ImageChoiceItem", "type": "object", "_attrs_order_": ["label", "os", "release", "archs", "variant", "instance_types", "secureboot"]}, "description": "Available images indexed by image identifier.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "virt.instance.query": {"description": "Query all instances with `query-filters` and `query-options`.", "cli_description": "Query all instances with `query-filters` and `query-options`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_INSTANCE_READ", "VIRT_INSTANCE_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtual instance.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the virtual instance.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of virtual instance.", "enum": ["CONTAINER", "VM"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "status": {"description": "Current operational status of the virtual instance.", "enum": ["RUNNING", "STOPPED", "UNKNOWN", "ERROR", "FROZEN", "STARTING", "STOPPING", "FREEZING", "THAWED", "ABORTING"], "title": "status", "type": "string", "_name_": "status", "_required_": false}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "CPU configuration string or `null` for default allocation.", "title": "cpu", "_name_": "cpu", "_required_": false}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Memory allocation in bytes or `null` for default allocation.", "title": "memory", "_name_": "memory", "_required_": false}, "autostart": {"description": "Whether the instance automatically starts when the host boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "environment": {"additionalProperties": {"type": "string"}, "description": "Environment variables to set inside the instance.", "title": "environment", "type": "object", "_name_": "environment", "_required_": false}, "aliases": {"description": "Array of IP aliases configured for the instance.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "IP address for the virtual instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Network mask in CIDR notation.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "VirtInstanceAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "image": {"additionalProperties": false, "properties": {"architecture": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hardware architecture of the image (e.g., amd64, arm64).", "title": "architecture", "_name_": "architecture", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the image.", "title": "description", "_name_": "description", "_required_": true}, "os": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Operating system family of the image.", "title": "os", "_name_": "os", "_required_": true}, "release": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Version or release name of the operating system.", "title": "release", "_name_": "release", "_required_": true}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique serial identifier for the image.", "title": "serial", "_name_": "serial", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of image (container, virtual-machine, etc.).", "title": "type", "_name_": "type", "_required_": true}, "variant": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Image variant (default, cloud, minimal, etc.).", "title": "variant", "_name_": "variant", "_required_": true}, "secureboot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the image supports UEFI Secure Boot.", "title": "secureboot", "_name_": "secureboot", "_required_": true}}, "required": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"], "title": "image", "type": "object", "description": "Image information used to create this instance.", "_name_": "image", "_required_": false, "_attrs_order_": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"]}, "userns_idmap": {"anyOf": [{"additionalProperties": false, "properties": {"uid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "User ID mapping configuration for user namespace isolation.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "Group ID mapping configuration for user namespace isolation.", "title": "gid", "_name_": "gid", "_required_": true}}, "required": ["uid", "gid"], "title": "UserNsIdmap", "type": "object", "_attrs_order_": ["uid", "gid"]}, {"type": "null"}], "description": "User namespace ID mapping configuration for privilege isolation.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "raw": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Raw low-level configuration options (advanced use only).", "title": "raw", "_name_": "raw", "_required_": false}, "vnc_enabled": {"description": "Whether VNC remote access is enabled for the instance.", "title": "vnc_enabled", "type": "boolean", "_name_": "vnc_enabled", "_required_": false}, "vnc_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "TCP port number for VNC connections or `null` if VNC is disabled.", "title": "vnc_port", "_name_": "vnc_port", "_required_": false}, "vnc_password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "vnc_password REDACTED, "_name_": "vnc_password REDACTED, "_required_": false}, "secure_boot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether UEFI Secure Boot is enabled (VMs only) or `null` for containers.", "title": "secure_boot", "_name_": "secure_boot", "_required_": false}, "privileged_mode": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the container runs in privileged mode or `null` for VMs.", "title": "privileged_mode", "_name_": "privileged_mode", "_required_": false}, "root_disk_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the root disk in GB or `null` for default size.", "title": "root_disk_size", "_name_": "root_disk_size", "_required_": false}, "root_disk_io_bus": {"description": "I/O bus type for the root disk or `null` for default.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "root_disk_io_bus", "_name_": "root_disk_io_bus", "_required_": false}, "storage_pool": {"description": "Storage pool in which the root of the instance is located.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": false}}, "title": "VirtInstanceQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "type", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtual instance.", "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name for the virtual instance.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "type": {"description": "Type of virtual instance.", "enum": ["CONTAINER", "VM"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "status": {"description": "Current operational status of the virtual instance.", "enum": ["RUNNING", "STOPPED", "UNKNOWN", "ERROR", "FROZEN", "STARTING", "STOPPING", "FREEZING", "THAWED", "ABORTING"], "title": "status", "type": "string", "_name_": "status", "_required_": false}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "CPU configuration string or `null` for default allocation.", "title": "cpu", "_name_": "cpu", "_required_": false}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Memory allocation in bytes or `null` for default allocation.", "title": "memory", "_name_": "memory", "_required_": false}, "autostart": {"description": "Whether the instance automatically starts when the host boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "environment": {"additionalProperties": {"type": "string"}, "description": "Environment variables to set inside the instance.", "title": "environment", "type": "object", "_name_": "environment", "_required_": false}, "aliases": {"description": "Array of IP aliases configured for the instance.", "items": [{}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": false}, "image": {"description": "Image information used to create this instance.", "title": "image", "_name_": "image", "_required_": false}, "userns_idmap": {"anyOf": [{}, {"type": "null"}], "description": "User namespace ID mapping configuration for privilege isolation.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": false}, "raw": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Raw low-level configuration options (advanced use only).", "title": "raw", "_name_": "raw", "_required_": false}, "vnc_enabled": {"description": "Whether VNC remote access is enabled for the instance.", "title": "vnc_enabled", "type": "boolean", "_name_": "vnc_enabled", "_required_": false}, "vnc_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "TCP port number for VNC connections or `null` if VNC is disabled.", "title": "vnc_port", "_name_": "vnc_port", "_required_": false}, "vnc_password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "vnc_password REDACTED, "_name_": "vnc_password REDACTED, "_required_": false}, "secure_boot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether UEFI Secure Boot is enabled (VMs only) or `null` for containers.", "title": "secure_boot", "_name_": "secure_boot", "_required_": false}, "privileged_mode": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the container runs in privileged mode or `null` for VMs.", "title": "privileged_mode", "_name_": "privileged_mode", "_required_": false}, "root_disk_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the root disk in GB or `null` for default size.", "title": "root_disk_size", "_name_": "root_disk_size", "_required_": false}, "root_disk_io_bus": {"description": "I/O bus type for the root disk or `null` for default.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "root_disk_io_bus", "_name_": "root_disk_io_bus", "_required_": false}, "storage_pool": {"description": "Storage pool in which the root of the instance is located.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": false}}, "title": "VirtInstanceQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "type", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "virt.instance.restart": {"description": "Restart an instance.\n\nTimeout is how long it should wait for the instance to shutdown cleanly.", "cli_description": "Restart an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to stop.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"timeout": {"default": -1, "description": "Timeout in seconds to wait for graceful shutdown (-1 for no timeout when `force = true`).", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "force": {"default": false, "description": "Whether to force stop the instance immediately without graceful shutdown.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "stop_args", "type": "object", "default": {"timeout": -1, "force": false}, "description": "Arguments controlling how the instance is stopped.", "_name_": "stop_args", "_required_": false, "_attrs_order_": ["timeout", "force"]}], "returns": [{"description": "Returns `true` if the instance was successfully restarted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.set_bootable_disk": {"description": "Specify `disk` to boot `id_` virt instance OS from.", "cli_description": "Specify `disk` to boot `id_` virt instance OS from", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "Identifier of the virtual instance to configure.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"description": "Name or identifier of the disk device to set as bootable.", "minLength": 1, "title": "disk", "type": "string", "_name_": "disk", "_required_": true}], "returns": [{"description": "Whether the bootable disk configuration was successfully applied.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.start": {"description": "Start an instance.", "cli_description": "Start an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to start.", "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `true` if the instance was successfully started.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.stop": {"description": "Stop an instance.\n\nTimeout is how long it should wait for the instance to shutdown cleanly.", "cli_description": "Stop an instance", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to stop.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"timeout": {"default": -1, "description": "Timeout in seconds to wait for graceful shutdown (-1 for no timeout when `force = true`).", "title": "timeout", "type": "integer", "_name_": "timeout", "_required_": false}, "force": {"default": false, "description": "Whether to force stop the instance immediately without graceful shutdown.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "stop_args", "type": "object", "default": {"timeout": -1, "force": false}, "description": "Arguments controlling how the instance is stopped.", "_name_": "stop_args", "_required_": false, "_attrs_order_": ["timeout", "force"]}], "returns": [{"description": "Returns `true` if the instance was successfully stopped.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.instance.update": {"description": "Update instance.", "cli_description": "Update instance", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_INSTANCE_WRITE"], "accepts": [{"description": "ID of the virtual instance to update.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"environment": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"type": "null"}], "description": "Environment variables to set inside the instance.", "title": "environment", "_name_": "environment", "_required_": false}, "autostart": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the instance should automatically start when the host boots.", "title": "autostart", "_name_": "autostart", "_required_": false}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "CPU allocation specification or `null` for automatic allocation.", "title": "cpu", "_name_": "cpu", "_required_": false}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Memory allocation in bytes or `null` for automatic allocation.", "title": "memory", "_name_": "memory", "_required_": false}, "vnc_port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "description": "TCP port number for VNC access (5900-65535) or `null` to disable VNC.", "title": "vnc_port", "_name_": "vnc_port", "_required_": false}, "enable_vnc": {"description": "Whether to enable VNC remote access for the instance.", "title": "enable_vnc", "type": "boolean", "_name_": "enable_vnc", "_required_": false}, "vnc_password REDACTED, "type": "string"}, {"type": "null"}], "description": "Setting vnc_password REDACTED, "title": "vnc_password REDACTED, "_name_": "vnc_password REDACTED, "_required_": false}, "secure_boot": {"description": "Whether to enable UEFI Secure Boot (VMs only).", "title": "secure_boot", "type": "boolean", "_name_": "secure_boot", "_required_": false}, "root_disk_size": {"anyOf": [{"minimum": 5, "type": "integer"}, {"type": "null"}], "description": "Size of the root disk in GB (minimum 5GB) or `null` to keep current size.", "title": "root_disk_size", "_name_": "root_disk_size", "_required_": false}, "root_disk_io_bus": {"description": "I/O bus type for the root disk or `null` to keep current setting.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "root_disk_io_bus", "_name_": "root_disk_io_bus", "_required_": false}, "image_os": {"anyOf": [{"type": "string"}, {"enum": ["LINUX", "FREEBSD", "WINDOWS", "ARCHLINUX", null]}], "description": "Operating system type for the instance or `null` for auto-detection.", "title": "image_os", "_name_": "image_os", "_required_": false}, "privileged_mode": {"description": "This is only valid for containers and should only be set when container instance which is to be deployed is to run in a privileged mode.", "title": "privileged_mode", "type": "boolean", "_name_": "privileged_mode", "_required_": false}}, "title": "virt_instance_update", "type": "object", "description": "Updated configuration data for the virtual instance.", "_name_": "virt_instance_update", "_required_": true, "_attrs_order_": ["environment", "autostart", "cpu", "memory", "vnc_port", "enable_vnc", "vnc_password REDACTED, "secure_boot", "root_disk_size", "root_disk_io_bus", "image_os", "privileged_mode"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtual instance.", "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name for the virtual instance.", "maxLength": 200, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "type": {"default": "CONTAINER", "description": "Type of virtual instance.", "enum": ["CONTAINER", "VM"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "status": {"description": "Current operational status of the virtual instance.", "enum": ["RUNNING", "STOPPED", "UNKNOWN", "ERROR", "FROZEN", "STARTING", "STOPPING", "FREEZING", "THAWED", "ABORTING"], "title": "status", "type": "string", "_name_": "status", "_required_": true}, "cpu": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "CPU configuration string or `null` for default allocation.", "title": "cpu", "_name_": "cpu", "_required_": true}, "memory": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Memory allocation in bytes or `null` for default allocation.", "title": "memory", "_name_": "memory", "_required_": true}, "autostart": {"description": "Whether the instance automatically starts when the host boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": true}, "environment": {"additionalProperties": {"type": "string"}, "description": "Environment variables to set inside the instance.", "title": "environment", "type": "object", "_name_": "environment", "_required_": true}, "aliases": {"description": "Array of IP aliases configured for the instance.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of IP address (INET for IPv4, INET6 for IPv6).", "enum": ["INET", "INET6"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "address": {"description": "IP address for the virtual instance.", "minLength": 1, "title": "address", "type": "string", "_name_": "address", "_required_": true}, "netmask": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Network mask in CIDR notation.", "title": "netmask", "_name_": "netmask", "_required_": true}}, "required": ["type", "address", "netmask"], "title": "VirtInstanceAlias", "type": "object", "_attrs_order_": ["type", "address", "netmask"]}], "title": "aliases", "type": "array", "_name_": "aliases", "_required_": true}, "image": {"additionalProperties": false, "properties": {"architecture": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hardware architecture of the image (e.g., amd64, arm64).", "title": "architecture", "_name_": "architecture", "_required_": true}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Human-readable description of the image.", "title": "description", "_name_": "description", "_required_": true}, "os": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Operating system family of the image.", "title": "os", "_name_": "os", "_required_": true}, "release": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Version or release name of the operating system.", "title": "release", "_name_": "release", "_required_": true}, "serial": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique serial identifier for the image.", "title": "serial", "_name_": "serial", "_required_": true}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of image (container, virtual-machine, etc.).", "title": "type", "_name_": "type", "_required_": true}, "variant": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Image variant (default, cloud, minimal, etc.).", "title": "variant", "_name_": "variant", "_required_": true}, "secureboot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the image supports UEFI Secure Boot.", "title": "secureboot", "_name_": "secureboot", "_required_": true}}, "required": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"], "title": "image", "type": "object", "description": "Image information used to create this instance.", "_name_": "image", "_required_": true, "_attrs_order_": ["architecture", "description", "os", "release", "serial", "type", "variant", "secureboot"]}, "userns_idmap": {"anyOf": [{"additionalProperties": false, "properties": {"uid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "User ID mapping configuration for user namespace isolation.", "title": "uid", "_name_": "uid", "_required_": true}, "gid": {"anyOf": [{"additionalProperties": false, "properties": {"hostid": {"description": "Starting host ID for the mapping range.", "title": "hostid", "type": "integer", "_name_": "hostid", "_required_": true}, "maprange": {"description": "Number of IDs to map in this range.", "title": "maprange", "type": "integer", "_name_": "maprange", "_required_": true}, "nsid": {"description": "Starting namespace ID for the mapping range.", "title": "nsid", "type": "integer", "_name_": "nsid", "_required_": true}}, "required": ["hostid", "maprange", "nsid"], "title": "IdmapUserNsEntry", "type": "object", "_attrs_order_": ["hostid", "maprange", "nsid"]}, {"type": "null"}], "description": "Group ID mapping configuration for user namespace isolation.", "title": "gid", "_name_": "gid", "_required_": true}}, "required": ["uid", "gid"], "title": "UserNsIdmap", "type": "object", "_attrs_order_": ["uid", "gid"]}, {"type": "null"}], "description": "User namespace ID mapping configuration for privilege isolation.", "title": "userns_idmap", "_name_": "userns_idmap", "_required_": true}, "raw": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "Raw low-level configuration options (advanced use only).", "title": "raw", "_name_": "raw", "_required_": true}, "vnc_enabled": {"description": "Whether VNC remote access is enabled for the instance.", "title": "vnc_enabled", "type": "boolean", "_name_": "vnc_enabled", "_required_": true}, "vnc_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "TCP port number for VNC connections or `null` if VNC is disabled.", "title": "vnc_port", "_name_": "vnc_port", "_required_": true}, "vnc_password REDACTED, "type": "string"}, {"type": "null"}], "description": "Password REDACTED, "title": "vnc_password REDACTED, "_name_": "vnc_password REDACTED, "_required_": true}, "secure_boot": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether UEFI Secure Boot is enabled (VMs only) or `null` for containers.", "title": "secure_boot", "_name_": "secure_boot", "_required_": true}, "privileged_mode": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the container runs in privileged mode or `null` for VMs.", "title": "privileged_mode", "_name_": "privileged_mode", "_required_": true}, "root_disk_size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of the root disk in GB or `null` for default size.", "title": "root_disk_size", "_name_": "root_disk_size", "_required_": true}, "root_disk_io_bus": {"description": "I/O bus type for the root disk or `null` for default.", "enum": ["NVME", "VIRTIO-BLK", "VIRTIO-SCSI", null], "title": "root_disk_io_bus", "_name_": "root_disk_io_bus", "_required_": true}, "storage_pool": {"description": "Storage pool in which the root of the instance is located.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}}, "required": ["id", "name", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"], "title": "result", "type": "object", "description": "The updated virtual instance configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "type", "status", "cpu", "memory", "autostart", "environment", "aliases", "image", "userns_idmap", "raw", "vnc_enabled", "vnc_port", "vnc_password REDACTED, "secure_boot", "privileged_mode", "root_disk_size", "root_disk_io_bus", "storage_pool"]}]}, "virt.volume.create": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_IMAGE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Name for the new virtualization volume (alphanumeric, dashes, dots, underscores).", "maxLength": 63, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "content_type": {"const": "BLOCK", "default": "BLOCK", "enum": ["BLOCK"], "title": "content_type", "type": "string", "_name_": "content_type", "_required_": false}, "size": {"default": 1024, "description": "Size of volume in MB and it should at least be 512 MB.", "minimum": 512, "title": "size", "type": "integer", "_name_": "size", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool in which to create the volume. This must be one of pools listed in virt.global.config output under `storage_pools`. If the value is None, then the pool defined as `pool` in virt.global.config will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}}, "required": ["name"], "title": "virt_volume_create", "type": "object", "description": "VirtVolumeCreateArgs parameters.", "_name_": "virt_volume_create", "_required_": true, "_attrs_order_": ["name", "content_type", "size", "storage_pool"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": true}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": true}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": true}}, "required": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"], "title": "result", "type": "object", "description": "The newly created virtualization volume configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}]}, "virt.volume.delete": {"description": null, "cli_description": "", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_IMAGE_WRITE"], "accepts": [{"description": "Identifier of the virtualization volume to delete.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Always returns true on successful volume deletion.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "virt.volume.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_IMAGE_READ", "VIRT_IMAGE_WRITE"], "accepts": [{"title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": true}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": true}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": true}}, "required": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}]}, "virt.volume.import_iso": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": true, "check_pipes": false, "roles": ["VIRT_IMAGE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"name": {"description": "Specify name of the newly created volume from the ISO specified.", "maxLength": 63, "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "iso_location": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to the ISO file to import. `null` if uploading via `upload_iso`.", "title": "iso_location", "_name_": "iso_location", "_required_": false}, "upload_iso": {"default": false, "description": "Whether to upload an ISO file instead of using a local file path.", "title": "upload_iso", "type": "boolean", "_name_": "upload_iso", "_required_": false}, "storage_pool": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Storage pool in which to create the volume. This must be one of pools listed in virt.global.config output under `storage_pools`. If the value is None, then the pool defined as `pool` in virt.global.config will be used.", "title": "storage_pool", "_name_": "storage_pool", "_required_": false}}, "required": ["name"], "title": "virt_volume_import_iso", "type": "object", "description": "VirtVolumeImportIsoArgs parameters.", "_name_": "virt_volume_import_iso", "_required_": true, "_attrs_order_": ["name", "iso_location", "upload_iso", "storage_pool"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": true}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": true}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": true}}, "required": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"], "title": "result", "type": "object", "description": "The newly created volume from the imported ISO file.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}]}, "virt.volume.import_zvol": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VIRT_IMAGE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"to_import": {"description": "Array of ZFS volumes to import as virtualization volumes.", "items": [{"additionalProperties": false, "properties": {"virt_volume_name": {"description": "Name for the new virtualization volume created from the imported ZFS volume.", "maxLength": 63, "minLength": 1, "title": "virt_volume_name", "type": "string", "_name_": "virt_volume_name", "_required_": true}, "zvol_path": {"description": "Full path to the ZFS volume device in /dev/zvol/.", "minLength": 1, "title": "zvol_path", "type": "string", "_name_": "zvol_path", "_required_": true}}, "required": ["virt_volume_name", "zvol_path"], "title": "ZvolImportEntry", "type": "object", "_attrs_order_": ["virt_volume_name", "zvol_path"]}], "title": "to_import", "type": "array", "_name_": "to_import", "_required_": true}, "clone": {"default": false, "description": "Whether to clone and promote the ZFS volume instead of importing directly.", "title": "clone", "type": "boolean", "_name_": "clone", "_required_": false}}, "required": ["to_import"], "title": "virt_volume_import_iso", "type": "object", "description": "VirtVolumeImportZvolArgs parameters.", "_name_": "virt_volume_import_iso", "_required_": true, "_attrs_order_": ["to_import", "clone"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": true}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": true}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": true}}, "required": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"], "title": "result", "type": "object", "description": "The newly created volume from the imported ZFS volume.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}]}, "virt.volume.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VIRT_IMAGE_READ", "VIRT_IMAGE_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": false}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": false}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": false}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": false}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": false}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": false}}, "title": "VirtVolumeQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": false}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": false}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": false}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": false}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": false}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": false}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": false}}, "title": "VirtVolumeQueryResultItem", "type": "object", "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "virt.volume.update": {"description": null, "cli_description": "", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VIRT_IMAGE_WRITE"], "accepts": [{"description": "Identifier of the virtualization volume to update.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"size": {"description": "New size for the volume in MB (minimum 512MB).", "minimum": 512, "title": "size", "type": "integer", "_name_": "size", "_required_": false}}, "title": "virt_volume_update", "type": "object", "description": "Updated configuration for the virtualization volume.", "_name_": "virt_volume_update", "_required_": true, "_attrs_order_": ["size"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the virtualization volume.", "minLength": 1, "title": "id", "type": "string", "_name_": "id", "_required_": true}, "name": {"description": "Human-readable name of the virtualization volume.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "storage_pool": {"description": "Name of the storage pool containing this volume.", "minLength": 1, "title": "storage_pool", "type": "string", "_name_": "storage_pool", "_required_": true}, "content_type": {"description": "Type of content stored in this volume (e.g., 'BLOCK', 'ISO').", "minLength": 1, "title": "content_type", "type": "string", "_name_": "content_type", "_required_": true}, "created_at": {"description": "Timestamp when this volume was created.", "title": "created_at", "type": "string", "_name_": "created_at", "_required_": true}, "type": {"description": "Volume type indicating its storage backend and characteristics.", "minLength": 1, "title": "type", "type": "string", "_name_": "type", "_required_": true}, "config": {"description": "Object containing detailed configuration parameters for this volume.", "title": "config", "type": "object", "_name_": "config", "_required_": true}, "used_by": {"description": "Array of virtual instance names currently using this volume.", "items": [{"minLength": 1, "type": "string"}], "title": "used_by", "type": "array", "_name_": "used_by", "_required_": true}}, "required": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"], "title": "result", "type": "object", "description": "The updated virtualization volume configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "name", "storage_pool", "content_type", "created_at", "type", "config", "used_by"]}]}, "vm.bootloader_options": {"description": "Supported motherboard firmware options.", "cli_description": "Supported motherboard firmware options", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"UEFI": {"const": "UEFI", "default": "UEFI", "description": "Modern UEFI firmware with secure boot support.", "enum": ["UEFI"], "title": "UEFI", "type": "string", "_name_": "UEFI", "_required_": false}, "UEFI_CSM": {"const": "Legacy BIOS", "default": "Legacy BIOS", "description": "UEFI with Compatibility Support Module for legacy BIOS compatibility.", "enum": ["Legacy BIOS"], "title": "UEFI_CSM", "type": "string", "_name_": "UEFI_CSM", "_required_": false}}, "title": "result", "type": "object", "description": "VMBootloaderOptionsResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["UEFI", "UEFI_CSM"]}]}, "vm.bootloader_ovmf_choices": {"description": "Retrieve bootloader ovmf choices", "cli_description": "Retrieve bootloader ovmf choices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "properties": {}, "title": "result", "type": "object", "description": "VMBootloaderOvmfChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.clone": {"description": "Clone the VM `id`.\n\n`name` is an optional parameter for the cloned VM.\nIf not provided it will append the next number available to the VM name.", "cli_description": "Clone the VM `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to clone.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Name for the cloned virtual machine. `null` to auto-generate.", "title": "name", "_name_": "name", "_required_": false}], "returns": [{"description": "Whether the virtual machine was successfully cloned.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.cpu_model_choices": {"description": "Retrieve CPU Model choices which can be used with a VM guest to emulate the CPU in the guest.", "cli_description": "Retrieve CPU Model choices which can be used with a VM guest to emulate the CPU in the guest", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "description": "VMCpuModelChoicesResult return fields.", "properties": {}, "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.create": {"description": "Create a Virtual Machine (VM).\n\nMaximum of 16 guest virtual CPUs are allowed. By default, every virtual CPU is configured as a\nseparate package. Multiple cores can be configured per CPU by specifying `cores` attributes.\n`vcpus` specifies total number of CPU sockets. `cores` specifies number of cores per socket. `threads`\nspecifies number of threads per core.\n\n`ensure_display_device` when set ( the default ) will ensure that the guest always has access to a video device.\nFor headless installations like ubuntu server this is required for the guest to operate properly. However\nfor cases where consumer would like to use GPU passthrough and does not want a display device added should set\nthis to `false`.\n\n`arch_type` refers to architecture type and can be specified for the guest. By default the value is `null` and\nsystem in this case will choose a reasonable default based on host.\n\n`machine_type` refers to machine type of the guest based on the architecture type selected with `arch_type`.\nBy default the value is `null` and system in this case will choose a reasonable default based on `arch_type`\nconfiguration.\n\n`shutdown_timeout` indicates the time in seconds the system waits for the VM to cleanly shutdown. During system\nshutdown, if the VM hasn't exited after a hardware shutdown signal has been sent by the system within\n`shutdown_timeout` seconds, system initiates poweroff for the VM to stop it.\n\n`hide_from_msr` is a boolean which when set will hide the KVM hypervisor from standard MSR based discovery and\nis useful to enable when doing GPU passthrough.\n\n`hyperv_enlightenments` can be used to enable subset of predefined Hyper-V enlightenments for Windows guests.\nThese enlightenments improve performance and enable otherwise missing features.\n\n`suspend_on_snapshot` is a boolean attribute which when enabled will automatically pause/suspend VMs when\na snapshot is being taken for periodic snapshot tasks. For manual snapshots, if user has specified vms to\nbe paused, they will be in that case.", "cli_description": "Create a Virtual Machine (VM)", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"command_line_args": {"default": "", "description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"default": "CUSTOM", "description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"default": "", "description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"default": 1, "description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"default": 1, "description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"default": 1, "description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"default": false, "description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"default": false, "description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"default": false, "description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"default": false, "description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": true}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"default": false, "description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"default": "UEFI", "description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "bootloader_ovmf": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "OVMF firmware file to use for UEFI boot.", "examples": ["OVMF_CODE.fd", "OVMF_CODE.secboot.fd"], "title": "bootloader_ovmf", "_name_": "bootloader_ovmf", "_required_": false}, "autostart": {"default": true, "description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"default": false, "description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"default": true, "description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"default": "LOCAL", "description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"default": 90, "description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}, "enable_secure_boot": {"default": false, "description": "Whether to enable UEFI Secure Boot for enhanced security.", "title": "enable_secure_boot", "type": "boolean", "_name_": "enable_secure_boot", "_required_": false}}, "required": ["name", "memory"], "title": "vm_create", "type": "object", "description": "VMCreateArgs parameters.", "_name_": "vm_create", "_required_": true, "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "bootloader_ovmf", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid", "enable_secure_boot"]}], "returns": [{"additionalProperties": false, "properties": {"command_line_args": {"default": "", "description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"default": "CUSTOM", "description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"default": "", "description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"default": 1, "description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"default": 1, "description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"default": 1, "description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"default": false, "description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"default": false, "description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"default": false, "description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"default": false, "description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": true}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"default": false, "description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"default": "UEFI", "description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "bootloader_ovmf": {"default": "OVMF_CODE.fd", "description": "OVMF firmware file to use for UEFI boot.", "examples": ["OVMF_CODE.fd", "OVMF_CODE.secboot.fd"], "title": "bootloader_ovmf", "type": "string", "_name_": "bootloader_ovmf", "_required_": false}, "autostart": {"default": true, "description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"default": false, "description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"default": true, "description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"default": "LOCAL", "description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"default": 90, "description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}, "devices": {"description": "Array of virtual devices attached to this VM.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "VMDeviceEntry", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}], "title": "devices", "type": "array", "_name_": "devices", "_required_": true}, "display_available": {"description": "Whether at least one display device is available for this VM.", "title": "display_available", "type": "boolean", "_name_": "display_available", "_required_": true}, "id": {"description": "Unique identifier for the virtual machine.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "status": {"additionalProperties": false, "properties": {"state": {"description": "Current state of the virtual machine.", "examples": ["RUNNING", "STOPPED", "SUSPENDED"], "minLength": 1, "title": "state", "type": "string", "_name_": "state", "_required_": true}, "pid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Process ID of the running VM. `null` if not running.", "title": "pid", "_name_": "pid", "_required_": true}, "domain_state": {"description": "Hypervisor-specific domain state.", "minLength": 1, "title": "domain_state", "type": "string", "_name_": "domain_state", "_required_": true}}, "required": ["state", "pid", "domain_state"], "title": "status", "type": "object", "description": "Current runtime status information for the VM.", "_name_": "status", "_required_": true, "_attrs_order_": ["state", "pid", "domain_state"]}, "enable_secure_boot": {"default": false, "description": "Whether to enable UEFI Secure Boot for enhanced security.", "title": "enable_secure_boot", "type": "boolean", "_name_": "enable_secure_boot", "_required_": false}}, "required": ["name", "memory", "devices", "display_available", "id", "status"], "title": "result", "type": "object", "description": "The newly created virtual machine configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "bootloader_ovmf", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid", "devices", "display_available", "id", "status", "enable_secure_boot"]}]}, "vm.delete": {"description": "Delete a VM.", "cli_description": "Delete a VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"zvols": {"default": false, "description": "Delete associated ZFS volumes when deleting the VM.", "title": "zvols", "type": "boolean", "_name_": "zvols", "_required_": false}, "force": {"default": false, "description": "Force deletion even if the VM is currently running.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}}, "title": "options", "type": "object", "default": {"zvols": false, "force": false}, "description": "Options controlling the VM deletion process.", "_name_": "options", "_required_": false, "_attrs_order_": ["zvols", "force"]}], "returns": [{"description": "Whether the virtual machine was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.export_disk_image": {"description": "Exports a zvol to a formatted VM disk image.\n\nUtilized qemu-img with the conversion functionality to export a zvol to\nany supported disk image format, from RAW -> ${OTHER}. The resulting file\nwill be set to inherit the permissions of the target directory.\n\nAs of this implementation it supports the following {format} options :\n\n- QCOW2\n- QED\n- RAW\n- VDI\n- VPC\n- VMDK\n\n`format` is an required parameter for the exported disk image\n`directory` is an required parameter for the export disk image\n`zvol` is the source for the disk image", "cli_description": "Exports a zvol to a formatted VM disk image", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"format": {"description": "Output format for the exported disk image (e.g., 'qcow2', 'raw').", "minLength": 1, "title": "format", "type": "string", "_name_": "format", "_required_": true}, "directory": {"description": "Directory path where the exported disk image will be saved.", "minLength": 1, "title": "directory", "type": "string", "_name_": "directory", "_required_": true}, "zvol": {"description": "Source ZFS volume to export as a disk image.", "minLength": 1, "title": "zvol", "type": "string", "_name_": "zvol", "_required_": true}}, "required": ["format", "directory", "zvol"], "title": "vm_export_disk_image", "type": "object", "description": "VMExportDiskImageArgs parameters.", "_name_": "vm_export_disk_image", "_required_": true, "_attrs_order_": ["format", "directory", "zvol"]}], "returns": [{"description": "Whether the disk image export operation was successful.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.flags": {"description": "Returns a dictionary with CPU flags for the hypervisor.", "cli_description": "Returns a dictionary with CPU flags for the hypervisor", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"intel_vmx": {"description": "Whether Intel VT-x (VMX) virtualization is available.", "title": "intel_vmx", "type": "boolean", "_name_": "intel_vmx", "_required_": true}, "unrestricted_guest": {"description": "Whether Intel unrestricted guest mode is supported.", "title": "unrestricted_guest", "type": "boolean", "_name_": "unrestricted_guest", "_required_": true}, "amd_rvi": {"description": "Whether AMD Rapid Virtualization Indexing (RVI/NPT) is available.", "title": "amd_rvi", "type": "boolean", "_name_": "amd_rvi", "_required_": true}, "amd_asids": {"description": "Whether AMD Address Space Identifiers (ASIDs) are supported.", "title": "amd_asids", "type": "boolean", "_name_": "amd_asids", "_required_": true}}, "required": ["intel_vmx", "unrestricted_guest", "amd_rvi", "amd_asids"], "title": "result", "type": "object", "description": "VMFlagsResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["intel_vmx", "unrestricted_guest", "amd_rvi", "amd_asids"]}]}, "vm.get_available_memory": {"description": "Get the current maximum amount of available memory to be allocated for VMs.\n\nIn case of `overcommit` being `true`, calculations are done in the following manner:\n1. If a VM has requested 10G but is only consuming 5G, only 5G will be counted\n2. System will consider shrinkable ZFS ARC as free memory ( shrinkable ZFS ARC is current ZFS ARC\n minus ZFS ARC minimum )\n\nIn case of `overcommit` being `false`, calculations are done in the following manner:\n1. Complete VM requested memory will be taken into account regardless of how much actual physical\n memory the VM is consuming\n2. System will not consider shrinkable ZFS ARC as free memory\n\nMemory is of course a very \"volatile\" resource, values may change abruptly between a\nsecond but I deem it good enough to give the user a clue about how much memory is\navailable at the current moment and if a VM should be allowed to be launched.", "cli_description": "Get the current maximum amount of available memory to be allocated for VMs", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"default": false, "description": "Whether to include overcommitted memory in available memory calculation.", "title": "overcommit", "type": "boolean", "_name_": "overcommit", "_required_": false}], "returns": [{"description": "Available memory for virtual machines in megabytes.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "vm.get_console": {"description": "Get the console device from a given guest.", "cli_description": "Get the console device from a given guest", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get console connection information for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Console connection string or command for accessing the VM console.", "minLength": 1, "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "vm.get_display_devices": {"description": "Get the display devices from a given guest. If a display device has password REDACTED,\n`attributes.password REDACTED, "cli_description": "Get the display devices from a given guest", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get display devices for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Array of display devices configured for the virtual machine.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "boolean", "_name_": "password REDACTED, "_required_": true}}, "required": ["dtype", "password REDACTED, "title": "attributes", "type": "object", "description": "Display device attributes including password REDACTED, "_name_": "attributes", "_required_": true, "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type", "password REDACTED}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "DisplayDevice", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "vm.get_display_web_uri": {"description": "Retrieve Display URI for a given VM or appropriate error if there is no display device available\nor if it is not configured to use web interface", "cli_description": "Retrieve Display URI for a given VM or appropriate error if there is no display device available or if it is not configured to use web interface", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": true, "require_websocket": true, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get display web URI for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"default": "", "description": "Hostname or IP address to use in the URI. Empty string for automatic detection.", "title": "host", "type": "string", "_name_": "host", "_required_": false}, {"additionalProperties": false, "properties": {"protocol": {"default": "HTTP", "description": "Protocol to use for the web display URI (HTTP or HTTPS).", "enum": ["HTTP", "HTTPS"], "title": "protocol", "type": "string", "_name_": "protocol", "_required_": false}}, "title": "options", "type": "object", "default": {"protocol": "HTTP"}, "description": "Options for generating the web display URI.", "_name_": "options", "_required_": false, "_attrs_order_": ["protocol"]}], "returns": [{"additionalProperties": false, "properties": {"error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if URI generation failed. `null` on success.", "title": "error", "_name_": "error", "_required_": true}, "uri": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Generated web URI for accessing the VM display. `null` on error.", "title": "uri", "_name_": "uri", "_required_": true}}, "required": ["error", "uri"], "title": "result", "type": "object", "description": "VMGetDisplayWebUriResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["error", "uri"]}]}, "vm.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"command_line_args": {"default": "", "description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"default": "CUSTOM", "description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"default": "", "description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"default": 1, "description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"default": 1, "description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"default": 1, "description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"default": false, "description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"default": false, "description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"default": false, "description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"default": false, "description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": true}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"default": false, "description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"default": "UEFI", "description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "bootloader_ovmf": {"default": "OVMF_CODE.fd", "description": "OVMF firmware file to use for UEFI boot.", "examples": ["OVMF_CODE.fd", "OVMF_CODE.secboot.fd"], "title": "bootloader_ovmf", "type": "string", "_name_": "bootloader_ovmf", "_required_": false}, "autostart": {"default": true, "description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"default": false, "description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"default": true, "description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"default": "LOCAL", "description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"default": 90, "description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}, "devices": {"description": "Array of virtual devices attached to this VM.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "VMDeviceEntry", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}], "title": "devices", "type": "array", "_name_": "devices", "_required_": true}, "display_available": {"description": "Whether at least one display device is available for this VM.", "title": "display_available", "type": "boolean", "_name_": "display_available", "_required_": true}, "id": {"description": "Unique identifier for the virtual machine.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "status": {"additionalProperties": false, "properties": {"state": {"description": "Current state of the virtual machine.", "examples": ["RUNNING", "STOPPED", "SUSPENDED"], "minLength": 1, "title": "state", "type": "string", "_name_": "state", "_required_": true}, "pid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Process ID of the running VM. `null` if not running.", "title": "pid", "_name_": "pid", "_required_": true}, "domain_state": {"description": "Hypervisor-specific domain state.", "minLength": 1, "title": "domain_state", "type": "string", "_name_": "domain_state", "_required_": true}}, "required": ["state", "pid", "domain_state"], "title": "status", "type": "object", "description": "Current runtime status information for the VM.", "_name_": "status", "_required_": true, "_attrs_order_": ["state", "pid", "domain_state"]}, "enable_secure_boot": {"default": false, "description": "Whether to enable UEFI Secure Boot for enhanced security.", "title": "enable_secure_boot", "type": "boolean", "_name_": "enable_secure_boot", "_required_": false}}, "required": ["name", "memory", "devices", "display_available", "id", "status"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "bootloader_ovmf", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid", "devices", "display_available", "id", "status", "enable_secure_boot"]}]}, "vm.get_memory_usage": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get memory usage for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Current memory usage of the virtual machine in bytes.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "vm.get_vm_memory_info": {"description": "Returns memory information for `vm_id` VM if it is going to be started.\n\nAll memory attributes are expressed in bytes.", "cli_description": "Returns memory information for `vm_id` VM if it is going to be started", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get memory information for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"minimum_memory_requested": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Minimum memory requested by the VM", "title": "minimum_memory_requested", "_name_": "minimum_memory_requested", "_required_": true}, "total_memory_requested": {"description": "Maximum / total memory requested by the VM", "title": "total_memory_requested", "type": "integer", "_name_": "total_memory_requested", "_required_": true}, "overcommit_required": {"description": "Overcommit of memory is required to start VM", "title": "overcommit_required", "type": "boolean", "_name_": "overcommit_required", "_required_": true}, "memory_req_fulfilled_after_overcommit": {"description": "Memory requirements of VM are fulfilled if over-committing memory is specified", "title": "memory_req_fulfilled_after_overcommit", "type": "boolean", "_name_": "memory_req_fulfilled_after_overcommit", "_required_": true}, "arc_to_shrink": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Size of ARC to shrink in bytes", "title": "arc_to_shrink", "_name_": "arc_to_shrink", "_required_": true}, "current_arc_max": {"description": "Current size of max ARC in bytes", "title": "current_arc_max", "type": "integer", "_name_": "current_arc_max", "_required_": true}, "arc_min": {"description": "Minimum size of ARC in bytes", "title": "arc_min", "type": "integer", "_name_": "arc_min", "_required_": true}, "arc_max_after_shrink": {"description": "Size of max ARC in bytes after shrinking", "title": "arc_max_after_shrink", "type": "integer", "_name_": "arc_max_after_shrink", "_required_": true}, "actual_vm_requested_memory": {"description": "VM memory in bytes to consider when making calculations for available/required memory. If VM ballooning is specified for the VM, the minimum VM memory specified by user will be taken into account otherwise total VM memory requested will be taken into account.", "title": "actual_vm_requested_memory", "type": "integer", "_name_": "actual_vm_requested_memory", "_required_": true}}, "required": ["minimum_memory_requested", "total_memory_requested", "overcommit_required", "memory_req_fulfilled_after_overcommit", "arc_to_shrink", "current_arc_max", "arc_min", "arc_max_after_shrink", "actual_vm_requested_memory"], "title": "result", "type": "object", "description": "VMGetVmMemoryInfoResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["minimum_memory_requested", "total_memory_requested", "overcommit_required", "memory_req_fulfilled_after_overcommit", "arc_to_shrink", "current_arc_max", "arc_min", "arc_max_after_shrink", "actual_vm_requested_memory"]}]}, "vm.get_vmemory_in_use": {"description": "The total amount of virtual memory in MB used by guests\n\n Returns a dict with the following information:\n RNP - Running but not provisioned\n PRD - Provisioned but not running\n RPRD - Running and provisioned", "cli_description": "The total amount of virtual memory in MB used by guests", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"RNP": {"description": "Running but not provisioned", "title": "RNP", "type": "integer", "_name_": "RNP", "_required_": true}, "PRD": {"description": "Provisioned but not running", "title": "PRD", "type": "integer", "_name_": "PRD", "_required_": true}, "RPRD": {"description": "Running and provisioned", "title": "RPRD", "type": "integer", "_name_": "RPRD", "_required_": true}}, "required": ["RNP", "PRD", "RPRD"], "title": "result", "type": "object", "description": "VMGetVmemoryInUseResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["RNP", "PRD", "RPRD"]}]}, "vm.guest_architecture_and_machine_choices": {"description": "Retrieve choices for supported guest architecture types and machine choices.\n\nKeys in the response would be supported guest architecture(s) on the host and their respective values would\nbe supported machine type(s) for the specific architecture on the host.", "cli_description": "Retrieve choices for supported guest architecture types and machine choices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "properties": {}, "title": "result", "type": "object", "description": "VMGuestArchitectureAndMachineChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.import_disk_image": {"description": "Imports a specified disk image.\n\nUtilized qemu-img with the auto-detect functionality to auto-convert\nany supported disk image format to RAW -> ZVOL\n\nAs of this implementation it supports:\n\n- QCOW2\n- QED\n- RAW\n- VDI\n- VPC\n- VMDK\n\n`diskimg` is an required parameter for the incoming disk image\n`zvol` is the required target for the imported disk image", "cli_description": "Imports a specified disk image", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"diskimg": {"description": "Path to the disk image file to import.", "minLength": 1, "title": "diskimg", "type": "string", "_name_": "diskimg", "_required_": true}, "zvol": {"description": "Target ZFS volume path where the disk image will be imported.", "minLength": 1, "title": "zvol", "type": "string", "_name_": "zvol", "_required_": true}}, "required": ["diskimg", "zvol"], "title": "vm_import_disk_image", "type": "object", "description": "VMImportDiskImageArgs parameters.", "_name_": "vm_import_disk_image", "_required_": true, "_attrs_order_": ["diskimg", "zvol"]}], "returns": [{"description": "Whether the disk image import operation was successful.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.log_file_download": {"description": "Retrieve log file contents of `id` VM.\n\nIt will download empty file if log file does not exist.", "cli_description": "Retrieve log file contents of `id` VM", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": true, "uploadable": false, "check_pipes": true, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to download log file for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.log_file_path": {"description": "Retrieve log file path of `id` VM.\n\nIt will return path of the log file if it exists and `null` otherwise.", "cli_description": "Retrieve log file path of `id` VM", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get log file path for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "description": "Path to the VM log file. `null` if no log file exists.", "title": "result", "_name_": "result", "_required_": true}]}, "vm.maximum_supported_vcpus": {"description": "Returns maximum supported VCPU's", "cli_description": "Returns maximum supported VCPU's", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"description": "Maximum number of virtual CPUs supported by the host system.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "vm.port_wizard": {"description": "It returns the next available Display Server Port and Web Port.\n\nReturns a dict with two keys `port` and `web`.", "cli_description": "It returns the next available Display Server Port and Web Port", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"port": {"description": "Available server port", "title": "port", "type": "integer", "_name_": "port", "_required_": true}, "web": {"description": "Web port to be used based on available port", "title": "web", "type": "integer", "_name_": "web", "_required_": true}}, "required": ["port", "web"], "title": "result", "type": "object", "description": "VMPortWizardResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["port", "web"]}]}, "vm.poweroff": {"description": "Poweroff a VM.", "cli_description": "Poweroff a VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to power off forcefully.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful VM power off initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"command_line_args": {"description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": false}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "bootloader_ovmf": {"description": "OVMF firmware file to use for UEFI boot.", "examples": ["OVMF_CODE.fd", "OVMF_CODE.secboot.fd"], "title": "bootloader_ovmf", "type": "string", "_name_": "bootloader_ovmf", "_required_": false}, "autostart": {"description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}, "devices": {"description": "Array of virtual devices attached to this VM.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "VMDeviceEntry", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}], "title": "devices", "type": "array", "_name_": "devices", "_required_": false}, "display_available": {"description": "Whether at least one display device is available for this VM.", "title": "display_available", "type": "boolean", "_name_": "display_available", "_required_": false}, "id": {"description": "Unique identifier for the virtual machine.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "status": {"additionalProperties": false, "properties": {"state": {"description": "Current state of the virtual machine.", "examples": ["RUNNING", "STOPPED", "SUSPENDED"], "minLength": 1, "title": "state", "type": "string", "_name_": "state", "_required_": true}, "pid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Process ID of the running VM. `null` if not running.", "title": "pid", "_name_": "pid", "_required_": true}, "domain_state": {"description": "Hypervisor-specific domain state.", "minLength": 1, "title": "domain_state", "type": "string", "_name_": "domain_state", "_required_": true}}, "required": ["state", "pid", "domain_state"], "title": "status", "type": "object", "description": "Current runtime status information for the VM.", "_name_": "status", "_required_": false, "_attrs_order_": ["state", "pid", "domain_state"]}, "enable_secure_boot": {"description": "Whether to enable UEFI Secure Boot for enhanced security.", "title": "enable_secure_boot", "type": "boolean", "_name_": "enable_secure_boot", "_required_": false}}, "title": "VMQueryResultItem", "type": "object", "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "bootloader_ovmf", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid", "devices", "display_available", "id", "status", "enable_secure_boot"]}], "type": "array"}, {"additionalProperties": false, "properties": {"command_line_args": {"description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": false}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "bootloader_ovmf": {"description": "OVMF firmware file to use for UEFI boot.", "examples": ["OVMF_CODE.fd", "OVMF_CODE.secboot.fd"], "title": "bootloader_ovmf", "type": "string", "_name_": "bootloader_ovmf", "_required_": false}, "autostart": {"description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}, "devices": {"description": "Array of virtual devices attached to this VM.", "items": [{}], "title": "devices", "type": "array", "_name_": "devices", "_required_": false}, "display_available": {"description": "Whether at least one display device is available for this VM.", "title": "display_available", "type": "boolean", "_name_": "display_available", "_required_": false}, "id": {"description": "Unique identifier for the virtual machine.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "status": {"description": "Current runtime status information for the VM.", "title": "status", "_name_": "status", "_required_": false}, "enable_secure_boot": {"description": "Whether to enable UEFI Secure Boot for enhanced security.", "title": "enable_secure_boot", "type": "boolean", "_name_": "enable_secure_boot", "_required_": false}}, "title": "VMQueryResultItem", "type": "object", "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "bootloader_ovmf", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid", "devices", "display_available", "id", "status", "enable_secure_boot"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "vm.random_mac": {"description": "Create a random mac address.\n\nReturns:\n str: with six groups of two hexadecimal digits", "cli_description": "Create a random mac address", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"description": "Randomly generated MAC address suitable for virtual machine network interfaces.", "title": "result", "type": "string", "_name_": "result", "_required_": true}]}, "vm.resolution_choices": {"description": "Retrieve supported resolution choices for VM Display devices.", "cli_description": "Retrieve supported resolution choices for VM Display devices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"type": "string"}, "description": "Object of available display resolutions for virtual machines.", "title": "result", "type": "object", "_name_": "result", "_required_": true}]}, "vm.restart": {"description": "Restart a VM.", "cli_description": "Restart a VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to restart.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful VM restart initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.resume": {"description": "Resume suspended `id` VM.", "cli_description": "Resume suspended `id` VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to resume from suspended state.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful VM resume initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.start": {"description": "Start a VM.\n\noptions.overcommit defaults to false, meaning VMs are not allowed to\nstart if there is not enough available memory to hold all configured VMs.\nIf true, VM starts even if there is not enough memory for all configured VMs.\n\nError codes:\n\n ENOMEM(12): not enough free memory to run the VM without overcommit", "cli_description": "Start a VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to start.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"overcommit": {"default": false, "description": "Whether to allow memory overcommitment when starting the VM.", "title": "overcommit", "type": "boolean", "_name_": "overcommit", "_required_": false}}, "title": "options", "type": "object", "default": {"overcommit": false}, "description": "Options controlling the VM start process.", "_name_": "options", "_required_": false, "_attrs_order_": ["overcommit"]}], "returns": [{"description": "Returns `null` on successful VM start initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.status": {"description": "Get the status of `id` VM.\n\nReturns a dict:\n - state, RUNNING / STOPPED / SUSPENDED\n - pid, process id if RUNNING", "cli_description": "Get the status of `id` VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to get status for.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"state": {"description": "Current state of the virtual machine.", "examples": ["RUNNING", "STOPPED", "SUSPENDED"], "minLength": 1, "title": "state", "type": "string", "_name_": "state", "_required_": true}, "pid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Process ID of the running VM. `null` if not running.", "title": "pid", "_name_": "pid", "_required_": true}, "domain_state": {"description": "Hypervisor-specific domain state.", "minLength": 1, "title": "domain_state", "type": "string", "_name_": "domain_state", "_required_": true}}, "required": ["state", "pid", "domain_state"], "title": "result", "type": "object", "description": "Current status and runtime information for the virtual machine.", "_name_": "result", "_required_": true, "_attrs_order_": ["state", "pid", "domain_state"]}]}, "vm.stop": {"description": "Stops a VM.\n\nFor unresponsive guests who have exceeded the `shutdown_timeout` defined by the user and have become\nunresponsive, they required to be powered down using `vm.poweroff`. `vm.stop` is only going to send a\nshutdown signal to the guest and wait the desired `shutdown_timeout` value before tearing down guest vmemory.\n\n`force_after_timeout` when supplied, it will initiate poweroff for the VM forcing it to exit if it has\nnot already stopped within the specified `shutdown_timeout`.", "cli_description": "Stops a VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to stop.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "Whether to force immediate shutdown without graceful shutdown attempt.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "force_after_timeout": {"default": false, "description": "Whether to force shutdown if graceful shutdown times out.", "title": "force_after_timeout", "type": "boolean", "_name_": "force_after_timeout", "_required_": false}}, "title": "options", "type": "object", "default": {"force": false, "force_after_timeout": false}, "description": "Options controlling the VM stop process.", "_name_": "options", "_required_": false, "_attrs_order_": ["force", "force_after_timeout"]}], "returns": [{"description": "Returns `null` on successful VM stop initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.supports_virtualization": {"description": "Returns \"true\" if system supports virtualization, \"false\" otherwise", "cli_description": "Returns \"true\" if system supports virtualization, \"false\" otherwise", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"description": "Whether the host system supports hardware virtualization (VT-x/AMD-V).", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.suspend": {"description": "Suspend `id` VM.", "cli_description": "Suspend `id` VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to suspend.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"description": "Returns `null` on successful VM suspend initiation.", "title": "result", "type": "null", "_name_": "result", "_required_": true}]}, "vm.update": {"description": "Update all information of a specific VM.\n\n`devices` is a list of virtualized hardware to attach to the virtual machine. If `devices` is not present,\nno change is made to devices. If either the device list order or data stored by the device changes when the\nattribute is passed, these actions are taken:\n\n1) If there is no device in the `devices` list which was previously attached to the VM, that device is\n removed from the virtual machine.\n2) Devices are updated in the `devices` list when they contain a valid `id` attribute that corresponds to\n an existing device.\n3) Devices that do not have an `id` attribute are created and attached to `id` VM.", "cli_description": "Update all information of a specific VM", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE", "VM_WRITE"], "accepts": [{"description": "ID of the virtual machine to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"command_line_args": {"description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": false}, "description": {"description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": false}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "autostart": {"description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}}, "title": "vm_update", "type": "object", "description": "Updated configuration for the virtual machine.", "_name_": "vm_update", "_required_": true, "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid"]}], "returns": [{"additionalProperties": false, "properties": {"command_line_args": {"default": "", "description": "Additional command line arguments passed to the VM hypervisor.", "title": "command_line_args", "type": "string", "_name_": "command_line_args", "_required_": false}, "cpu_mode": {"default": "CUSTOM", "description": "CPU virtualization mode.\n\n* `CUSTOM`: Use specified model.\n* `HOST-MODEL`: Mirror host CPU.\n* `HOST-PASSTHROUGH`: Provide direct access to host CPU features.", "enum": ["CUSTOM", "HOST-MODEL", "HOST-PASSTHROUGH"], "title": "cpu_mode", "type": "string", "_name_": "cpu_mode", "_required_": false}, "cpu_model": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Specific CPU model to emulate. `null` to use hypervisor default.", "title": "cpu_model", "_name_": "cpu_model", "_required_": false}, "name": {"description": "Display name of the virtual machine.", "minLength": 1, "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"default": "", "description": "Optional description or notes about the virtual machine.", "title": "description", "type": "string", "_name_": "description", "_required_": false}, "vcpus": {"default": 1, "description": "Number of virtual CPUs allocated to the VM.", "minimum": 1, "title": "vcpus", "type": "integer", "_name_": "vcpus", "_required_": false}, "cores": {"default": 1, "description": "Number of CPU cores per socket.", "minimum": 1, "title": "cores", "type": "integer", "_name_": "cores", "_required_": false}, "threads": {"default": 1, "description": "Number of threads per CPU core.", "minimum": 1, "title": "threads", "type": "integer", "_name_": "threads", "_required_": false}, "cpuset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of host CPU cores to pin VM CPUs to. `null` for no pinning.", "title": "cpuset", "_name_": "cpuset", "_required_": false}, "nodeset": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Set of NUMA nodes to constrain VM memory allocation. `null` for no constraints.", "title": "nodeset", "_name_": "nodeset", "_required_": false}, "enable_cpu_topology_extension": {"default": false, "description": "Whether to expose detailed CPU topology information to the guest OS.", "title": "enable_cpu_topology_extension", "type": "boolean", "_name_": "enable_cpu_topology_extension", "_required_": false}, "pin_vcpus": {"default": false, "description": "Whether to pin virtual CPUs to specific host CPU cores. Improves performance but reduces host flexibility.", "title": "pin_vcpus", "type": "boolean", "_name_": "pin_vcpus", "_required_": false}, "suspend_on_snapshot": {"default": false, "description": "Whether to suspend the VM when taking snapshots.", "title": "suspend_on_snapshot", "type": "boolean", "_name_": "suspend_on_snapshot", "_required_": false}, "trusted_platform_module": {"default": false, "description": "Whether to enable virtual Trusted Platform Module (TPM) for the VM.", "title": "trusted_platform_module", "type": "boolean", "_name_": "trusted_platform_module", "_required_": false}, "memory": {"description": "Amount of memory allocated to the VM in megabytes.", "minimum": 20, "title": "memory", "type": "integer", "_name_": "memory", "_required_": true}, "min_memory": {"anyOf": [{"minimum": 20, "type": "integer"}, {"type": "null"}], "default": null, "description": "Minimum memory allocation for dynamic memory ballooning in megabytes. Allows VM memory to shrink during low usage but guarantees this minimum. `null` to disable ballooning.", "title": "min_memory", "_name_": "min_memory", "_required_": false}, "hyperv_enlightenments": {"default": false, "description": "Whether to enable Hyper-V enlightenments for improved Windows guest performance.", "title": "hyperv_enlightenments", "type": "boolean", "_name_": "hyperv_enlightenments", "_required_": false}, "bootloader": {"default": "UEFI", "description": "Boot firmware type. `UEFI` for modern UEFI, `UEFI_CSM` for legacy BIOS compatibility.", "enum": ["UEFI_CSM", "UEFI"], "title": "bootloader", "type": "string", "_name_": "bootloader", "_required_": false}, "bootloader_ovmf": {"default": "OVMF_CODE.fd", "description": "OVMF firmware file to use for UEFI boot.", "examples": ["OVMF_CODE.fd", "OVMF_CODE.secboot.fd"], "title": "bootloader_ovmf", "type": "string", "_name_": "bootloader_ovmf", "_required_": false}, "autostart": {"default": true, "description": "Whether to automatically start the VM when the host system boots.", "title": "autostart", "type": "boolean", "_name_": "autostart", "_required_": false}, "hide_from_msr": {"default": false, "description": "Whether to hide hypervisor signatures from guest OS MSR access.", "title": "hide_from_msr", "type": "boolean", "_name_": "hide_from_msr", "_required_": false}, "ensure_display_device": {"default": true, "description": "Whether to ensure at least one display device is configured for the VM.", "title": "ensure_display_device", "type": "boolean", "_name_": "ensure_display_device", "_required_": false}, "time": {"default": "LOCAL", "description": "Guest OS time zone reference. `LOCAL` uses host timezone, `UTC` uses coordinated universal time.", "enum": ["LOCAL", "UTC"], "title": "time", "type": "string", "_name_": "time", "_required_": false}, "shutdown_timeout": {"default": 90, "description": "Maximum time in seconds to wait for graceful shutdown before forcing power off. Default 90s balances allowing sufficient time for clean shutdown while avoiding indefinite hangs.", "maximum": 300, "minimum": 5, "title": "shutdown_timeout", "type": "integer", "_name_": "shutdown_timeout", "_required_": false}, "arch_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Guest architecture type. `null` to use hypervisor default.", "title": "arch_type", "_name_": "arch_type", "_required_": false}, "machine_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Virtual machine type/chipset. `null` to use hypervisor default.", "title": "machine_type", "_name_": "machine_type", "_required_": false}, "uuid": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Unique UUID for the VM. `null` to auto-generate.", "title": "uuid", "_name_": "uuid", "_required_": false}, "devices": {"description": "Array of virtual devices attached to this VM.", "items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "VMDeviceEntry", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}], "title": "devices", "type": "array", "_name_": "devices", "_required_": true}, "display_available": {"description": "Whether at least one display device is available for this VM.", "title": "display_available", "type": "boolean", "_name_": "display_available", "_required_": true}, "id": {"description": "Unique identifier for the virtual machine.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "status": {"additionalProperties": false, "properties": {"state": {"description": "Current state of the virtual machine.", "examples": ["RUNNING", "STOPPED", "SUSPENDED"], "minLength": 1, "title": "state", "type": "string", "_name_": "state", "_required_": true}, "pid": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Process ID of the running VM. `null` if not running.", "title": "pid", "_name_": "pid", "_required_": true}, "domain_state": {"description": "Hypervisor-specific domain state.", "minLength": 1, "title": "domain_state", "type": "string", "_name_": "domain_state", "_required_": true}}, "required": ["state", "pid", "domain_state"], "title": "status", "type": "object", "description": "Current runtime status information for the VM.", "_name_": "status", "_required_": true, "_attrs_order_": ["state", "pid", "domain_state"]}, "enable_secure_boot": {"default": false, "description": "Whether to enable UEFI Secure Boot for enhanced security.", "title": "enable_secure_boot", "type": "boolean", "_name_": "enable_secure_boot", "_required_": false}}, "required": ["name", "memory", "devices", "display_available", "id", "status"], "title": "result", "type": "object", "description": "The updated virtual machine configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["command_line_args", "cpu_mode", "cpu_model", "name", "description", "vcpus", "cores", "threads", "cpuset", "nodeset", "enable_cpu_topology_extension", "pin_vcpus", "suspend_on_snapshot", "trusted_platform_module", "memory", "min_memory", "hyperv_enlightenments", "bootloader", "bootloader_ovmf", "autostart", "hide_from_msr", "ensure_display_device", "time", "shutdown_timeout", "arch_type", "machine_type", "uuid", "devices", "display_available", "id", "status", "enable_secure_boot"]}]}, "vm.virtualization_details": {"description": "Retrieve details if virtualization is supported on the system and in case why it's not supported if it isn't.", "cli_description": "Retrieve details if virtualization is supported on the system and in case why it's not supported if it isn't", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE", "VM_READ", "VM_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"supported": {"description": "Whether hardware virtualization is supported and available.", "title": "supported", "type": "boolean", "_name_": "supported", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if virtualization is not available. `null` if supported.", "title": "error", "_name_": "error", "_required_": true}}, "required": ["supported", "error"], "title": "result", "type": "object", "description": "VMVirtualizationDetailsResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["supported", "error"]}]}, "vm.device.bind_choices": {"description": "Available choices for Bind attribute.", "cli_description": "Available choices for Bind attribute", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "properties": {}, "title": "result", "type": "object", "description": "VMDeviceBindChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.device.convert": {"description": "Convert between disk images and ZFS volumes. Supported disk image formats are qcow2, qed, raw, vdi, vhdx, and vmdk. The conversion direction is determined automatically based on file extension.", "cli_description": "Convert between disk images and ZFS volumes", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": true, "downloadable": false, "uploadable": false, "check_pipes": [], "roles": ["VM_DEVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"source": {"description": "Source path for the conversion (disk image file or ZFS volume).", "minLength": 1, "title": "source", "type": "string", "_name_": "source", "_required_": true}, "destination": {"description": "Destination path for the conversion (disk image file or ZFS volume).", "minLength": 1, "title": "destination", "type": "string", "_name_": "destination", "_required_": true}}, "required": ["source", "destination"], "title": "vm_convert", "type": "object", "description": "VMDeviceConvertArgs parameters.", "_name_": "vm_convert", "_required_": true, "_attrs_order_": ["source", "destination"]}], "returns": [{"description": "Whether the conversion operation was successful.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.device.create": {"description": "Create a new device for the VM of id `vm`.\n\nIf `attributes.dtype` is the `RAW` type and a new raw file is to be created, `attributes.exists` will be\npassed as false. This means the API handles creating the raw file and raises the appropriate exception if\nfile creation fails.\n\nIf `attributes.dtype` is of `DISK` type and a new Zvol is to be created, `attributes.create_zvol` will be\npassed as true with valid `attributes.zvol_name` and `attributes.zvol_volsize` values.", "cli_description": "Create a new device for the VM of id `vm`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Boot order priority for this device. `null` for automatic assignment.", "title": "order", "_name_": "order", "_required_": false}}, "required": ["attributes", "vm"], "title": "vm_device_create", "type": "object", "description": "VMDeviceCreateArgs parameters.", "_name_": "vm_device_create", "_required_": true, "_attrs_order_": ["attributes", "vm", "order"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "result", "type": "object", "description": "The newly created VM device configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "attributes", "vm", "order"]}]}, "vm.device.delete": {"description": "Delete a VM device of `id`.", "cli_description": "Delete a VM device of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE"], "accepts": [{"description": "ID of the VM device to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"force": {"default": false, "description": "Force deletion even if the device is in use.", "title": "force", "type": "boolean", "_name_": "force", "_required_": false}, "raw_file": {"default": false, "description": "Delete the underlying raw disk file when removing the device.", "title": "raw_file", "type": "boolean", "_name_": "raw_file", "_required_": false}, "zvol": {"default": false, "description": "Delete the underlying ZFS volume when removing the device.", "title": "zvol", "type": "boolean", "_name_": "zvol", "_required_": false}}, "title": "options", "type": "object", "default": {"force": false, "raw_file": false, "zvol": false}, "description": "Options controlling the device deletion process.", "_name_": "options", "_required_": false, "_attrs_order_": ["force", "raw_file", "zvol"]}], "returns": [{"description": "Whether the VM device was successfully deleted.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.device.disk_choices": {"description": "Returns disk choices for device type \"DISK\".", "cli_description": "Returns disk choices for device type \"DISK\"", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "properties": {}, "title": "result", "type": "object", "description": "Available disk devices and storage volumes for VM attachment.", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.device.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "attributes", "vm", "order"]}]}, "vm.device.iommu_enabled": {"description": "Returns \"true\" if iommu is enabled, \"false\" otherwise", "cli_description": "Returns \"true\" if iommu is enabled, \"false\" otherwise", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"description": "Whether IOMMU (Input-Output Memory Management Unit) is enabled on the system.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vm.device.iotype_choices": {"description": "IO-type choices for storage devices.", "cli_description": "IO-type choices for storage devices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": false, "properties": {"NATIVE": {"default": "NATIVE", "description": "Native asynchronous I/O for best performance with NVMe.", "title": "NATIVE", "type": "string", "_name_": "NATIVE", "_required_": false}, "THREADS": {"default": "THREADS", "description": "Thread-based I/O suitable for most storage types.", "title": "THREADS", "type": "string", "_name_": "THREADS", "_required_": false}, "IO_URING": {"default": "IO_URING", "description": "Linux io_uring interface for high-performance async I/O.", "title": "IO_URING", "type": "string", "_name_": "IO_URING", "_required_": false}}, "title": "result", "type": "object", "description": "VMDeviceIotypeChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["NATIVE", "THREADS", "IO_URING"]}]}, "vm.device.nic_attach_choices": {"description": "Available choices for NIC Attach attribute.", "cli_description": "Available choices for NIC Attach attribute", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "properties": {}, "title": "result", "type": "object", "description": "VMDeviceNicAttachChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.device.passthrough_device": {"description": "Retrieve details about `device` PCI device", "cli_description": "Retrieve details about `device` PCI device", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [{"description": "PCI device identifier to get passthrough information for.", "minLength": 1, "title": "device", "type": "string", "_name_": "device", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"capability": {"additionalProperties": false, "properties": {"class": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI device class identifier. `null` if not available.", "title": "class", "_name_": "class", "_required_": true}, "domain": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI domain number. `null` if not available.", "title": "domain", "_name_": "domain", "_required_": true}, "bus": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI bus number. `null` if not available.", "title": "bus", "_name_": "bus", "_required_": true}, "slot": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI slot number. `null` if not available.", "title": "slot", "_name_": "slot", "_required_": true}, "function": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI function number. `null` if not available.", "title": "function", "_name_": "function", "_required_": true}, "product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Product name of the PCI device. `null` if not available.", "title": "product", "_name_": "product", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Vendor name of the PCI device. `null` if not available.", "title": "vendor", "_name_": "vendor", "_required_": true}}, "required": ["class", "domain", "bus", "slot", "function", "product", "vendor"], "title": "capability", "type": "object", "description": "PCI device capability information.", "_name_": "capability", "_required_": true, "_attrs_order_": ["class", "domain", "bus", "slot", "function", "product", "vendor"]}, "controller_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of controller this device provides. `null` if not a controller.", "title": "controller_type", "_name_": "controller_type", "_required_": true}, "iommu_group": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "IOMMU group number for device isolation.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "addresses": {"description": "Array of PCI addresses in this IOMMU group.", "items": [{"additionalProperties": false, "properties": {"domain": {"description": "PCI domain number for this IOMMU group address.", "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "bus": {"description": "PCI bus number for this IOMMU group address.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "slot": {"description": "PCI slot number for this IOMMU group address.", "title": "slot", "type": "string", "_name_": "slot", "_required_": true}, "function": {"description": "PCI function number for this IOMMU group address.", "title": "function", "type": "string", "_name_": "function", "_required_": true}}, "required": ["domain", "bus", "slot", "function"], "title": "VMDeviceIOMMUGroupAddress", "type": "object", "_attrs_order_": ["domain", "bus", "slot", "function"]}], "title": "addresses", "type": "array", "_name_": "addresses", "_required_": true}}, "required": ["number", "addresses"], "title": "VMDeviceIOMMUGroup", "type": "object", "_attrs_order_": ["number", "addresses"]}, {"type": "null"}], "default": null, "description": "IOMMU group information for device isolation. `null` if IOMMU not available.", "title": "iommu_group", "_name_": "iommu_group", "_required_": false}, "available": {"description": "Whether the device is available for passthrough to virtual machines.", "title": "available", "type": "boolean", "_name_": "available", "_required_": true}, "drivers": {"description": "Array of kernel drivers currently bound to this device.", "items": [{"type": "string"}], "title": "drivers", "type": "array", "_name_": "drivers", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the device cannot be used for passthrough. `null` if no error.", "title": "error", "_name_": "error", "_required_": true}, "reset_mechanism_defined": {"description": "Whether the device supports proper reset mechanisms for passthrough.", "title": "reset_mechanism_defined", "type": "boolean", "_name_": "reset_mechanism_defined", "_required_": true}, "description": {"description": "Human-readable description of the PCI device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "critical": {"description": "Whether this device is critical to host system operation.", "title": "critical", "type": "boolean", "_name_": "critical", "_required_": true}, "device_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Device filesystem path. `null` if not available.", "title": "device_path", "_name_": "device_path", "_required_": true}}, "required": ["capability", "controller_type", "available", "drivers", "error", "reset_mechanism_defined", "description", "critical", "device_path"], "title": "result", "type": "object", "description": "Detailed information about the specified PCI passthrough device.", "_name_": "result", "_required_": true, "_attrs_order_": ["capability", "controller_type", "iommu_group", "available", "drivers", "error", "reset_mechanism_defined", "description", "critical", "device_path"]}]}, "vm.device.passthrough_device_choices": {"description": "Available choices for PCI passthru devices", "cli_description": "Available choices for PCI passthru devices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"capability": {"additionalProperties": false, "properties": {"class": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI device class identifier. `null` if not available.", "title": "class", "_name_": "class", "_required_": true}, "domain": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI domain number. `null` if not available.", "title": "domain", "_name_": "domain", "_required_": true}, "bus": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI bus number. `null` if not available.", "title": "bus", "_name_": "bus", "_required_": true}, "slot": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI slot number. `null` if not available.", "title": "slot", "_name_": "slot", "_required_": true}, "function": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI function number. `null` if not available.", "title": "function", "_name_": "function", "_required_": true}, "product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Product name of the PCI device. `null` if not available.", "title": "product", "_name_": "product", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Vendor name of the PCI device. `null` if not available.", "title": "vendor", "_name_": "vendor", "_required_": true}}, "required": ["class", "domain", "bus", "slot", "function", "product", "vendor"], "title": "capability", "type": "object", "description": "PCI device capability information.", "_name_": "capability", "_required_": true, "_attrs_order_": ["class", "domain", "bus", "slot", "function", "product", "vendor"]}, "controller_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of controller this device provides. `null` if not a controller.", "title": "controller_type", "_name_": "controller_type", "_required_": true}, "iommu_group": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "IOMMU group number for device isolation.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "addresses": {"description": "Array of PCI addresses in this IOMMU group.", "items": [{"additionalProperties": false, "properties": {"domain": {"description": "PCI domain number for this IOMMU group address.", "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "bus": {"description": "PCI bus number for this IOMMU group address.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "slot": {"description": "PCI slot number for this IOMMU group address.", "title": "slot", "type": "string", "_name_": "slot", "_required_": true}, "function": {"description": "PCI function number for this IOMMU group address.", "title": "function", "type": "string", "_name_": "function", "_required_": true}}, "required": ["domain", "bus", "slot", "function"], "title": "VMDeviceIOMMUGroupAddress", "type": "object", "_attrs_order_": ["domain", "bus", "slot", "function"]}], "title": "addresses", "type": "array", "_name_": "addresses", "_required_": true}}, "required": ["number", "addresses"], "title": "VMDeviceIOMMUGroup", "type": "object", "_attrs_order_": ["number", "addresses"]}, {"type": "null"}], "default": null, "description": "IOMMU group information for device isolation. `null` if IOMMU not available.", "title": "iommu_group", "_name_": "iommu_group", "_required_": false}, "available": {"description": "Whether the device is available for passthrough to virtual machines.", "title": "available", "type": "boolean", "_name_": "available", "_required_": true}, "drivers": {"description": "Array of kernel drivers currently bound to this device.", "items": [{"type": "string"}], "title": "drivers", "type": "array", "_name_": "drivers", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the device cannot be used for passthrough. `null` if no error.", "title": "error", "_name_": "error", "_required_": true}, "reset_mechanism_defined": {"description": "Whether the device supports proper reset mechanisms for passthrough.", "title": "reset_mechanism_defined", "type": "boolean", "_name_": "reset_mechanism_defined", "_required_": true}, "description": {"description": "Human-readable description of the PCI device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "critical": {"description": "Whether this device is critical to host system operation.", "title": "critical", "type": "boolean", "_name_": "critical", "_required_": true}, "device_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Device filesystem path. `null` if not available.", "title": "device_path", "_name_": "device_path", "_required_": true}}, "required": ["capability", "controller_type", "available", "drivers", "error", "reset_mechanism_defined", "description", "critical", "device_path"], "title": "VMDevicePassthroughDevice", "type": "object", "_attrs_order_": ["capability", "controller_type", "iommu_group", "available", "drivers", "error", "reset_mechanism_defined", "description", "critical", "device_path"]}, "title": "result", "type": "object", "description": "Object of available PCI devices for passthrough with their detailed information.", "_name_": "result", "_required_": true}]}, "vm.device.pptdev_choices": {"description": "Available choices for PCI passthru device", "cli_description": "Available choices for PCI passthru device", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"capability": {"additionalProperties": false, "properties": {"class": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI device class identifier. `null` if not available.", "title": "class", "_name_": "class", "_required_": true}, "domain": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI domain number. `null` if not available.", "title": "domain", "_name_": "domain", "_required_": true}, "bus": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI bus number. `null` if not available.", "title": "bus", "_name_": "bus", "_required_": true}, "slot": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI slot number. `null` if not available.", "title": "slot", "_name_": "slot", "_required_": true}, "function": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "PCI function number. `null` if not available.", "title": "function", "_name_": "function", "_required_": true}, "product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Product name of the PCI device. `null` if not available.", "title": "product", "_name_": "product", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Vendor name of the PCI device. `null` if not available.", "title": "vendor", "_name_": "vendor", "_required_": true}}, "required": ["class", "domain", "bus", "slot", "function", "product", "vendor"], "title": "capability", "type": "object", "description": "PCI device capability information.", "_name_": "capability", "_required_": true, "_attrs_order_": ["class", "domain", "bus", "slot", "function", "product", "vendor"]}, "controller_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Type of controller this device provides. `null` if not a controller.", "title": "controller_type", "_name_": "controller_type", "_required_": true}, "iommu_group": {"anyOf": [{"additionalProperties": false, "properties": {"number": {"description": "IOMMU group number for device isolation.", "title": "number", "type": "integer", "_name_": "number", "_required_": true}, "addresses": {"description": "Array of PCI addresses in this IOMMU group.", "items": [{"additionalProperties": false, "properties": {"domain": {"description": "PCI domain number for this IOMMU group address.", "title": "domain", "type": "string", "_name_": "domain", "_required_": true}, "bus": {"description": "PCI bus number for this IOMMU group address.", "title": "bus", "type": "string", "_name_": "bus", "_required_": true}, "slot": {"description": "PCI slot number for this IOMMU group address.", "title": "slot", "type": "string", "_name_": "slot", "_required_": true}, "function": {"description": "PCI function number for this IOMMU group address.", "title": "function", "type": "string", "_name_": "function", "_required_": true}}, "required": ["domain", "bus", "slot", "function"], "title": "VMDeviceIOMMUGroupAddress", "type": "object", "_attrs_order_": ["domain", "bus", "slot", "function"]}], "title": "addresses", "type": "array", "_name_": "addresses", "_required_": true}}, "required": ["number", "addresses"], "title": "VMDeviceIOMMUGroup", "type": "object", "_attrs_order_": ["number", "addresses"]}, {"type": "null"}], "default": null, "description": "IOMMU group information for device isolation. `null` if IOMMU not available.", "title": "iommu_group", "_name_": "iommu_group", "_required_": false}, "available": {"description": "Whether the device is available for passthrough to virtual machines.", "title": "available", "type": "boolean", "_name_": "available", "_required_": true}, "drivers": {"description": "Array of kernel drivers currently bound to this device.", "items": [{"type": "string"}], "title": "drivers", "type": "array", "_name_": "drivers", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the device cannot be used for passthrough. `null` if no error.", "title": "error", "_name_": "error", "_required_": true}, "reset_mechanism_defined": {"description": "Whether the device supports proper reset mechanisms for passthrough.", "title": "reset_mechanism_defined", "type": "boolean", "_name_": "reset_mechanism_defined", "_required_": true}, "description": {"description": "Human-readable description of the PCI device.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "critical": {"description": "Whether this device is critical to host system operation.", "title": "critical", "type": "boolean", "_name_": "critical", "_required_": true}, "device_path": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Device filesystem path. `null` if not available.", "title": "device_path", "_name_": "device_path", "_required_": true}}, "required": ["capability", "controller_type", "available", "drivers", "error", "reset_mechanism_defined", "description", "critical", "device_path"], "title": "VMDevicePassthroughDevice", "type": "object", "_attrs_order_": ["capability", "controller_type", "iommu_group", "available", "drivers", "error", "reset_mechanism_defined", "description", "critical", "device_path"]}, "title": "result", "type": "object", "description": "Object of PCI passthrough devices with their availability status.", "_name_": "result", "_required_": true}]}, "vm.device.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": false}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": false}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": false}}, "title": "VMDeviceQueryResultItem", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{}, {}, {}, {}, {}, {}, {}], "title": "attributes", "_name_": "attributes", "_required_": false}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": false}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": false}}, "title": "VMDeviceQueryResultItem", "type": "object", "_attrs_order_": ["id", "attributes", "vm", "order"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "vm.device.update": {"description": "Update a VM device of `id`.\n\nPass `attributes.size` to resize a `dtype` `RAW` device. The raw file will be resized.", "cli_description": "Update a VM device of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["VM_DEVICE_WRITE"], "accepts": [{"description": "ID of the VM device to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"attributes": {"description": "Device-specific configuration attributes.", "title": "attributes", "type": "object", "_name_": "attributes", "_required_": false}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": false}, "order": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Boot order priority for this device. `null` for automatic assignment.", "title": "order", "_name_": "order", "_required_": false}}, "title": "vm_device_update", "type": "object", "description": "Updated configuration for the VM device.", "_name_": "vm_device_update", "_required_": true, "_attrs_order_": ["attributes", "vm", "order"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VM device.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "attributes": {"description": "Device-specific configuration attributes.", "discriminator": {"mapping": {"CDROM": "#/$defs/VMCDROMDevice", "DISK": "#/$defs/VMDiskDevice", "DISPLAY": "#/$defs/VMDisplayDevice", "NIC": "#/$defs/VMNICDevice", "PCI": "#/$defs/VMPCIDevice", "RAW": "#/$defs/VMRAWDevice", "USB": "#/$defs/VMUSBDevice"}, "propertyName": "dtype"}, "oneOf": [{"additionalProperties": false, "properties": {"dtype": {"const": "CDROM", "description": "Device type identifier for CD-ROM/DVD devices.", "enum": ["CDROM"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters, and it should start with \"/mnt/\".", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["dtype", "path"], "title": "VMCDROMDevice", "type": "object", "_attrs_order_": ["dtype", "path"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISPLAY", "description": "Device type identifier for display/graphics devices.", "enum": ["DISPLAY"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "resolution": {"default": "1024x768", "description": "Screen resolution for the virtual display.", "enum": ["1920x1200", "1920x1080", "1600x1200", "1600x900", "1400x1050", "1280x1024", "1280x720", "1024x768", "800x600", "640x480"], "title": "resolution", "type": "string", "_name_": "resolution", "_required_": false}, "port": {"anyOf": [{"maximum": 65535, "minimum": 5900, "type": "integer"}, {"type": "null"}], "default": null, "description": "VNC/SPICE port number for remote display access. `null` for auto-assignment.", "title": "port", "_name_": "port", "_required_": false}, "web_port": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Web-based display access port number. `null` for auto-assignment.", "title": "web_port", "_name_": "web_port", "_required_": false}, "bind": {"default": "127.0.0.1", "description": "IP address to bind the display server to.", "minLength": 1, "title": "bind", "type": "string", "_name_": "bind", "_required_": false}, "wait": {"default": false, "description": "Whether to wait for a client connection before starting the VM.", "title": "wait", "type": "boolean", "_name_": "wait", "_required_": false}, "password REDACTED}, {"type": "null"}], "default": null, "description": "Password REDACTED, "title": "password REDACTED, "_name_": "password REDACTED, "_required_": false}, "web": {"default": true, "description": "Whether to enable web-based display access.", "title": "web", "type": "boolean", "_name_": "web", "_required_": false}, "type": {"default": "SPICE", "description": "Display protocol type.", "enum": ["SPICE", "VNC"], "title": "type", "type": "string", "_name_": "type", "_required_": false}}, "required": ["dtype"], "title": "VMDisplayDevice", "type": "object", "_attrs_order_": ["dtype", "resolution", "port", "web_port", "bind", "wait", "password REDACTED, "web", "type"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "NIC", "description": "Device type identifier for network interface cards.", "enum": ["NIC"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "trust_guest_rx_filters": {"default": false, "description": "Whether to trust guest OS receive filter settings for better performance.", "title": "trust_guest_rx_filters", "type": "boolean", "_name_": "trust_guest_rx_filters", "_required_": false}, "type": {"default": "E1000", "description": "Network interface controller type. `E1000` for Intel compatibility, `VIRTIO` for performance.", "enum": ["E1000", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "nic_attach": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Host network interface or bridge to attach to. `null` for no attachment.", "title": "nic_attach", "_name_": "nic_attach", "_required_": false}, "mac": {"anyOf": [{"pattern": "^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$", "type": "string"}, {"type": "null"}], "default": null, "description": "MAC address for the virtual network interface. `null` for auto-generation.", "title": "mac", "_name_": "mac", "_required_": false}}, "required": ["dtype"], "title": "VMNICDevice", "type": "object", "_attrs_order_": ["dtype", "trust_guest_rx_filters", "type", "nic_attach", "mac"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "PCI", "description": "Device type identifier for PCI passthrough devices.", "enum": ["PCI"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "pptdev": {"description": "Host PCI device identifier to pass through to the VM.", "minLength": 1, "title": "pptdev", "type": "string", "_name_": "pptdev", "_required_": true}}, "required": ["dtype", "pptdev"], "title": "VMPCIDevice", "type": "object", "_attrs_order_": ["dtype", "pptdev"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "RAW", "description": "Device type identifier for raw disk devices.", "enum": ["RAW"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"description": "Path must not contain \"{\", \"}\" characters.", "minLength": 1, "pattern": "^[^{}]*$", "title": "path", "type": "string", "_name_": "path", "_required_": true}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "exists": {"default": false, "description": "Whether the disk file already exists or should be created.", "title": "exists", "type": "boolean", "_name_": "exists", "_required_": false}, "boot": {"default": false, "description": "Whether this disk should be marked as bootable.", "title": "boot", "type": "boolean", "_name_": "boot", "_required_": false}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the disk in bytes. Required if creating a new disk file.", "title": "size", "_name_": "size", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype", "path"], "title": "VMRAWDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "exists", "boot", "size", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "DISK", "description": "Device type identifier for virtual disk devices.", "enum": ["DISK"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "path": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Path to existing disk file or ZFS volume. `null` if creating a new ZFS volume.", "title": "path", "_name_": "path", "_required_": false}, "type": {"default": "AHCI", "description": "Disk controller interface type. AHCI for compatibility, VIRTIO for performance.", "enum": ["AHCI", "VIRTIO"], "title": "type", "type": "string", "_name_": "type", "_required_": false}, "create_zvol": {"default": false, "description": "Whether to create a new ZFS volume for this disk.", "title": "create_zvol", "type": "boolean", "_name_": "create_zvol", "_required_": false}, "zvol_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Name for the new ZFS volume. Required if `create_zvol` is true.", "title": "zvol_name", "_name_": "zvol_name", "_required_": false}, "zvol_volsize": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Size of the new ZFS volume in bytes. Required if `create_zvol` is true.", "title": "zvol_volsize", "_name_": "zvol_volsize", "_required_": false}, "logical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Logical sector size for the disk. `null` for default.", "title": "logical_sectorsize", "_name_": "logical_sectorsize", "_required_": false}, "physical_sectorsize": {"anyOf": [{"enum": [null, 512, 4096]}, {"type": "null"}], "default": null, "description": "Physical sector size for the disk. `null` for default.", "title": "physical_sectorsize", "_name_": "physical_sectorsize", "_required_": false}, "iotype": {"default": "THREADS", "description": "I/O backend type for disk operations.", "enum": ["NATIVE", "THREADS", "IO_URING"], "title": "iotype", "type": "string", "_name_": "iotype", "_required_": false}, "serial": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Serial number to assign to the virtual disk. `null` for auto-generated.", "title": "serial", "_name_": "serial", "_required_": false}}, "required": ["dtype"], "title": "VMDiskDevice", "type": "object", "_attrs_order_": ["dtype", "path", "type", "create_zvol", "zvol_name", "zvol_volsize", "logical_sectorsize", "physical_sectorsize", "iotype", "serial"]}, {"additionalProperties": false, "properties": {"dtype": {"const": "USB", "description": "Device type identifier for USB devices.", "enum": ["USB"], "title": "dtype", "type": "string", "_name_": "dtype", "_required_": true}, "usb": {"anyOf": [{"additionalProperties": false, "properties": {"vendor_id": {"description": "USB vendor identifier in hexadecimal format (e.g., '0x1d6b' for Linux Foundation).", "minLength": 1, "pattern": "^0x.*", "title": "vendor_id", "type": "string", "_name_": "vendor_id", "_required_": true}, "product_id": {"description": "USB product identifier in hexadecimal format (e.g., '0x0002' for 2.0 root hub).", "minLength": 1, "pattern": "^0x.*", "title": "product_id", "type": "string", "_name_": "product_id", "_required_": true}}, "required": ["vendor_id", "product_id"], "title": "USBAttributes", "type": "object", "_attrs_order_": ["vendor_id", "product_id"]}, {"type": "null"}], "default": null, "description": "USB device attributes for identification. `null` for USB host controller only.", "title": "usb", "_name_": "usb", "_required_": false}, "controller_type": {"default": "nec-xhci", "description": "USB controller type for the virtual machine.", "enum": ["piix3-uhci", "piix4-uhci", "ehci", "ich9-ehci1", "vt82c686b-uhci", "pci-ohci", "nec-xhci", "qemu-xhci"], "title": "controller_type", "type": "string", "_name_": "controller_type", "_required_": false}, "device": {"anyOf": [{"minLength": 1, "type": "string"}, {"type": "null"}], "default": null, "description": "Host USB device path to pass through. `null` for controller only.", "title": "device", "_name_": "device", "_required_": false}}, "required": ["dtype"], "title": "VMUSBDevice", "type": "object", "_attrs_order_": ["dtype", "usb", "controller_type", "device"]}], "title": "attributes", "_name_": "attributes", "_required_": true}, "vm": {"description": "ID of the virtual machine this device belongs to.", "title": "vm", "type": "integer", "_name_": "vm", "_required_": true}, "order": {"description": "Boot order priority for this device (lower numbers boot first).", "title": "order", "type": "integer", "_name_": "order", "_required_": true}}, "required": ["id", "attributes", "vm", "order"], "title": "result", "type": "object", "description": "The updated VM device configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "attributes", "vm", "order"]}]}, "vm.device.usb_controller_choices": {"description": "Retrieve USB controller type choices", "cli_description": "Retrieve USB controller type choices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": true, "properties": {}, "title": "result", "type": "object", "description": "VMDeviceUsbControllerChoicesResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": []}]}, "vm.device.usb_passthrough_choices": {"description": "Available choices for USB passthrough devices.", "cli_description": "Available choices for USB passthrough devices", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [], "returns": [{"additionalProperties": {"additionalProperties": false, "properties": {"capability": {"additionalProperties": false, "properties": {"product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB product name. `null` if not available.", "title": "product", "_name_": "product", "_required_": true}, "product_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB product identifier. `null` if not available.", "title": "product_id", "_name_": "product_id", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB vendor name. `null` if not available.", "title": "vendor", "_name_": "vendor", "_required_": true}, "vendor_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB vendor identifier. `null` if not available.", "title": "vendor_id", "_name_": "vendor_id", "_required_": true}, "bus": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB bus number. `null` if not available.", "title": "bus", "_name_": "bus", "_required_": true}, "device": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB device number on bus. `null` if not available.", "title": "device", "_name_": "device", "_required_": true}}, "required": ["product", "product_id", "vendor", "vendor_id", "bus", "device"], "title": "capability", "type": "object", "description": "USB device capability and identification information.", "_name_": "capability", "_required_": true, "_attrs_order_": ["product", "product_id", "vendor", "vendor_id", "bus", "device"]}, "available": {"description": "Whether the USB device is available for passthrough to virtual machines.", "title": "available", "type": "boolean", "_name_": "available", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the device cannot be used for passthrough. `null` if no error.", "title": "error", "_name_": "error", "_required_": true}}, "required": ["capability", "available", "error"], "title": "USBPassthroughDevice", "type": "object", "_attrs_order_": ["capability", "available", "error"]}, "title": "result", "type": "object", "description": "Object of available USB devices for passthrough with their detailed information.", "_name_": "result", "_required_": true}]}, "vm.device.usb_passthrough_device": {"description": "Retrieve details about `device` USB device.", "cli_description": "Retrieve details about `device` USB device", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [{"description": "USB device identifier to get passthrough information for.", "minLength": 1, "title": "device", "type": "string", "_name_": "device", "_required_": true}], "returns": [{"additionalProperties": false, "properties": {"capability": {"additionalProperties": false, "properties": {"product": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB product name. `null` if not available.", "title": "product", "_name_": "product", "_required_": true}, "product_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB product identifier. `null` if not available.", "title": "product_id", "_name_": "product_id", "_required_": true}, "vendor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB vendor name. `null` if not available.", "title": "vendor", "_name_": "vendor", "_required_": true}, "vendor_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB vendor identifier. `null` if not available.", "title": "vendor_id", "_name_": "vendor_id", "_required_": true}, "bus": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB bus number. `null` if not available.", "title": "bus", "_name_": "bus", "_required_": true}, "device": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "USB device number on bus. `null` if not available.", "title": "device", "_name_": "device", "_required_": true}}, "required": ["product", "product_id", "vendor", "vendor_id", "bus", "device"], "title": "capability", "type": "object", "description": "USB device capability and identification information.", "_name_": "capability", "_required_": true, "_attrs_order_": ["product", "product_id", "vendor", "vendor_id", "bus", "device"]}, "available": {"description": "Whether the USB device is available for passthrough to virtual machines.", "title": "available", "type": "boolean", "_name_": "available", "_required_": true}, "error": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Error message if the device cannot be used for passthrough. `null` if no error.", "title": "error", "_name_": "error", "_required_": true}}, "required": ["capability", "available", "error"], "title": "result", "type": "object", "description": "Detailed information about the specified USB passthrough device.", "_name_": "result", "_required_": true, "_attrs_order_": ["capability", "available", "error"]}]}, "vm.device.virtual_size": {"description": "Get the virtual size of a disk image using qemu-img info.\n\nArgs:\n file_path: Absolute path to the disk image file\n\nReturns:\n Virtual size in bytes (int)\n\nRaise:\n ValidationError if any failure occurs", "cli_description": "Get the virtual size of a disk image using qemu-img info", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "VM_DEVICE_READ", "VM_DEVICE_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"path": {"description": "Absolute path to the disk image.", "title": "path", "type": "string", "_name_": "path", "_required_": true}}, "required": ["path"], "title": "vm_virtual_size", "type": "object", "description": "VMDeviceVirtualSizeArgs parameters.", "_name_": "vm_virtual_size", "_required_": true, "_attrs_order_": ["path"]}], "returns": [{"description": "The virtual size of the disk image in bytes.", "title": "result", "type": "integer", "_name_": "result", "_required_": true}]}, "vmware.create": {"description": "Create VMWare snapshot.", "cli_description": "Create VMWare snapshot", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"additionalProperties": false, "properties": {"datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": true}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": true}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["datastore", "filesystem", "hostname", "username", "password REDACTED, "title": "vmware_create", "type": "object", "description": "Configuration for creating a new VMware integration.", "_name_": "vmware_create", "_required_": true, "_attrs_order_": ["datastore", "filesystem", "hostname", "username", "password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VMware configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": true}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": true}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "state": {"description": "Current connection and synchronization state with the VMware host.", "title": "state", "type": "object", "_name_": "state", "_required_": true}}, "required": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"], "title": "result", "type": "object", "description": "The newly created VMware integration configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"]}]}, "vmware.dataset_has_vms": {"description": "Returns \"true\" if `dataset` is configured with a VMWare snapshot", "cli_description": "Returns \"true\" if `dataset` is configured with a VMWare snapshot", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"description": "ZFS dataset path to check for VMware virtual machines.", "title": "dataset", "type": "string", "_name_": "dataset", "_required_": true}, {"description": "Whether to check child datasets recursively.", "title": "recursive", "type": "boolean", "_name_": "recursive", "_required_": true}], "returns": [{"description": "Whether the dataset contains VMware virtual machines.", "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vmware.delete": {"description": "Delete VMWare snapshot of `id`.", "cli_description": "Delete VMWare snapshot of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the VMware configuration to delete.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}], "returns": [{"const": true, "description": "Always returns true on successful VMware configuration deletion.", "enum": [true], "title": "result", "type": "boolean", "_name_": "result", "_required_": true}]}, "vmware.get_datastores": {"description": "Get datastores from VMWare.", "cli_description": "Get datastores from VMWare", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"hostname": {"description": "IP address or hostname of the VMware host or vCenter server.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "username": {"description": "Username for VMware host authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["hostname", "username", "password REDACTED, "title": "vmware-creds", "type": "object", "description": "VMWareGetDatastoresArgs parameters.", "_name_": "vmware-creds", "_required_": true, "_attrs_order_": ["hostname", "username", "password REDACTED}], "returns": [{"description": "Array of available datastore names on the VMware host.", "items": [{"type": "string"}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}, "vmware.get_instance": {"description": "Returns instance matching `id`. If `id` is not found, Validation error is raised.\n\nPlease see `query` method documentation for `options`.", "cli_description": "Returns instance matching `id`", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "description": "Query options customize the results returned by a query method. More complete documentation with examples are covered in the \"Query methods\" section of the TrueNAS API documentation. ", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VMware configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": true}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": true}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "state": {"description": "Current connection and synchronization state with the VMware host.", "title": "state", "type": "object", "_name_": "state", "_required_": true}}, "required": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"], "title": "result", "type": "object", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"]}]}, "vmware.match_datastores_with_datasets": {"description": "Requests datastores from vCenter server and tries to match them with local filesystems.\n\nReturns a list of datastores, a list of local filesystems and guessed relationship between them.", "cli_description": "Requests datastores from vCenter server and tries to match them with local filesystems", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN"], "accepts": [{"additionalProperties": false, "properties": {"hostname": {"description": "IP address or hostname of the VMware host or vCenter server.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "username": {"description": "Username for VMware host authentication.", "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}}, "required": ["hostname", "username", "password REDACTED, "title": "vmware-creds", "type": "object", "description": "VMWareMatchDatastoresWithDatasetsArgs parameters.", "_name_": "vmware-creds", "_required_": true, "_attrs_order_": ["hostname", "username", "password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"datastores": {"description": "Array of VMware datastores with their matching local filesystems.", "items": [{"additionalProperties": false, "properties": {"name": {"description": "Name of the VMware datastore.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"description": "Human-readable description of the datastore.", "title": "description", "type": "string", "_name_": "description", "_required_": true}, "filesystems": {"description": "Array of local filesystem names that can provide storage for this datastore.", "items": [{"type": "string"}], "title": "filesystems", "type": "array", "_name_": "filesystems", "_required_": true}}, "required": ["name", "description", "filesystems"], "title": "VMWareMatchDatastoresWithDatasetsResultDatastore", "type": "object", "_attrs_order_": ["name", "description", "filesystems"]}], "title": "datastores", "type": "array", "_name_": "datastores", "_required_": true}, "filesystems": {"description": "Array of local filesystems that can be used for VMware storage.", "items": [{"additionalProperties": false, "properties": {"type": {"description": "Type of storage - FILESYSTEM for ZFS datasets, VOLUME for ZFS volumes.", "enum": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "name": {"description": "Name of the local filesystem or volume.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "description": {"description": "Human-readable description of the filesystem or volume.", "title": "description", "type": "string", "_name_": "description", "_required_": true}}, "required": ["type", "name", "description"], "title": "VMWareMatchDatastoresWithDatasetsResultFilesystem", "type": "object", "_attrs_order_": ["type", "name", "description"]}], "title": "filesystems", "type": "array", "_name_": "filesystems", "_required_": true}}, "required": ["datastores", "filesystems"], "title": "result", "type": "object", "description": "VMWareMatchDatastoresWithDatasetsResult return fields.", "_name_": "result", "_required_": true, "_attrs_order_": ["datastores", "filesystems"]}]}, "vmware.query": {"description": null, "cli_description": "", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": true, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "REPLICATION_ADMIN", "SHARING_ADMIN", "SNAPSHOT_TASK_READ", "SNAPSHOT_TASK_WRITE"], "accepts": [{"default": [], "description": "List of filters for query results. See API documentation for \"Query Methods\" for more guidance.", "examples": [[["name", "=", "bob"]], [["OR", [[["name", "=", "bob"]], [["name", "=", "larry"]]]]]], "items": [{}], "title": "filters", "type": "array", "_name_": "filters", "_required_": false}, {"additionalProperties": false, "description": "Query options including pagination, ordering, and additional parameters.", "properties": {"extra": {"default": {}, "description": "Extra options are defined on a per-endpoint basis and are described in the documentation for the associated query method. ", "title": "extra", "type": "object", "_name_": "extra", "_required_": false}, "order_by": {"default": [], "description": "An array of field names describing the manner in which query results should be ordered. The field names may also have one of more of the following special prefixes: `-` (reverse sort direction), `nulls_first:` (place any null values at the head of the results list), `nulls_last:` (place any null values at the tail of the results list). ", "examples": [["size", "-devname", "nulls_first:-expiretime"]], "items": [{"type": "string"}], "title": "order_by", "type": "array", "_name_": "order_by", "_required_": false}, "select": {"default": [], "description": "An array of field names specifying the exact fields to include in the query return. The dot character `.` may be used to explicitly select only subkeys of the query result. ", "examples": [["username", "Authentication.status"]], "items": [{"anyOf": [{"type": "string"}, {"items": [{}], "type": "array"}]}], "title": "select", "type": "array", "_name_": "select", "_required_": false}, "count": {"default": false, "description": "Return a numeric value representing the number of items that match the specified `query-filters`. ", "title": "count", "type": "boolean", "_name_": "count", "_required_": false}, "get": {"default": false, "description": "Return the JSON object of the first result matching the specified `query-filters`. The query fails if there specified `query-filters` return no results. ", "title": "get", "type": "boolean", "_name_": "get", "_required_": false}, "offset": {"default": 0, "description": "This specifies the beginning offset of the results array. When combined with the `limit` query-option it may be used to implement pagination of large results arrays. WARNING: some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "offset", "type": "integer", "_name_": "offset", "_required_": false}, "limit": {"default": 0, "description": "This specifies the maximum number of results matching the specified `query-filters` to return. When combined wtih the `offset` query-option it may be used to implement pagination of large results arrays.\n\nWARNING: Some query methods provide volatile results and the onus is on the developer to understand whether pagination is appropriate for a particular query API method. ", "title": "limit", "type": "integer", "_name_": "limit", "_required_": false}, "force_sql_filters": {"default": false, "description": "Force use of SQL for result filtering to reduce response time. May not work for all methods.", "title": "force_sql_filters", "type": "boolean", "_name_": "force_sql_filters", "_required_": false}}, "title": "options", "type": "object", "default": {"extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false}, "_name_": "options", "_required_": false, "_attrs_order_": ["extra", "order_by", "select", "count", "get", "offset", "limit", "force_sql_filters"]}], "returns": [{"anyOf": [{"items": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VMware configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": false}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": false}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "state": {"description": "Current connection and synchronization state with the VMware host.", "title": "state", "type": "object", "_name_": "state", "_required_": false}}, "title": "VMWareQueryResultItem", "type": "object", "_attrs_order_": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"]}], "type": "array"}, {"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VMware configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": false}, "datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": false}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": false}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}, "state": {"description": "Current connection and synchronization state with the VMware host.", "title": "state", "type": "object", "_name_": "state", "_required_": false}}, "title": "VMWareQueryResultItem", "type": "object", "_attrs_order_": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"]}, {"type": "integer"}], "title": "result", "_name_": "result", "_required_": true}]}, "vmware.update": {"description": "Update VMWare snapshot of `id`.", "cli_description": "Update VMWare snapshot of `id`", "examples": {}, "item_method": true, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["REPLICATION_ADMIN", "SNAPSHOT_TASK_WRITE"], "accepts": [{"description": "ID of the VMware configuration to update.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, {"additionalProperties": false, "properties": {"datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": false}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": false}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": false}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": false}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": false}}, "title": "vmware_update", "type": "object", "description": "Updated configuration for the VMware integration.", "_name_": "vmware_update", "_required_": true, "_attrs_order_": ["datastore", "filesystem", "hostname", "username", "password REDACTED}], "returns": [{"additionalProperties": false, "properties": {"id": {"description": "Unique identifier for the VMware configuration.", "title": "id", "type": "integer", "_name_": "id", "_required_": true}, "datastore": {"description": "Valid datastore name which exists on the VMWare host.", "title": "datastore", "type": "string", "_name_": "datastore", "_required_": true}, "filesystem": {"description": "ZFS filesystem or dataset to use for VMware storage.", "title": "filesystem", "type": "string", "_name_": "filesystem", "_required_": true}, "hostname": {"description": "Valid IP address / hostname of a VMWare host. When clustering, this is the vCenter server for the cluster.", "title": "hostname", "type": "string", "_name_": "hostname", "_required_": true}, "username": {"description": "Credential REDACTED, "title": "username", "type": "string", "_name_": "username", "_required_": true}, "password REDACTED, "title": "password REDACTED, "type": "string", "_name_": "password REDACTED, "_required_": true}, "state": {"description": "Current connection and synchronization state with the VMware host.", "title": "state", "type": "object", "_name_": "state", "_required_": true}}, "required": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"], "title": "result", "type": "object", "description": "The updated VMware integration configuration.", "_name_": "result", "_required_": true, "_attrs_order_": ["id", "datastore", "filesystem", "hostname", "username", "password REDACTED, "state"]}]}, "zfs.resource.query": {"description": "Query ZFS resources (datasets and volumes) with flexible filtering options.\n\nThis method provides a high-performance interface for retrieving information about ZFS resources, including their properties, hierarchical relationships, and metadata. The query can be customized to retrieve specific resources, properties, and control the output format.\n\nRaises:\n ValidationError: If:\n - Snapshot paths are provided (snapshots not currently supported)\n - Overlapping paths are provided with get_children=True\n - Requested paths don't exist (errno.ENOENT)\n\nExamples:\n # Query all resources with default properties\n query()\n\n # Query specific resources with all properties\n query({\"paths\": [\"tank/documents\", \"tank/media\"]})\n\n # Query with specific properties and children\n query({\n \"paths\": [\"tank\"],\n \"properties\": [\"mounted\", \"compression\", \"used\"],\n \"get_children\": True\n })\n\n # Get hierarchical view of resources\n query({\"paths\": [\"tank\"], \"nest_results\": True, \"get_children\": True})", "cli_description": "Query ZFS resources (datasets and volumes) with flexible filtering options", "examples": {}, "item_method": false, "no_auth_required": false, "filterable": false, "filterable_schema": null, "pass_application": false, "require_websocket": false, "job": false, "downloadable": false, "uploadable": false, "check_pipes": false, "roles": ["READONLY_ADMIN", "SHARING_ADMIN", "ZFS_RESOURCE_READ"], "accepts": [{"additionalProperties": false, "properties": {"paths": {"default": [], "description": "A list of zfs filesystem or volume paths to be queried. In almost all scenarios, you should provide a path of what you want to query. By providing path(s) here, it allows the API to apply optimizations so that the requested information is retrieved as efficiently and quickly as possible.\n\nExample 1:\n {\"paths\": [\"tank/foo\"]} will query the relevant information for this resource only.\nExample 2:\n {\"paths\": [\"tank/foo\", \"dozer/test\"]} will query the relevant information for these resources only.\n\nNOTE:\n paths must be non-overlapping if `get_children` is True.\n (i.e. this won't work and will raise a validation error)\n {\n \"paths\": [\"tank/foo1\", \"tank/foo1/foo2\"],\n \"get_children\": True\n }", "items": [{"type": "string"}], "title": "paths", "type": "array", "uniqueItems": true, "_name_": "paths", "_required_": false}, "properties": {"anyOf": [{"items": [{"type": "string"}], "type": "array"}, {"type": "null"}], "default": [], "description": "A list of zfs properties to be retrieved. Defaults to an empty list which will return a default set of zfs properties.\nSetting this to None will retrieve no zfs properties.", "title": "properties", "_name_": "properties", "_required_": false}, "get_user_properties": {"default": false, "description": "Retrieve user properties for zfs resource(s).", "title": "get_user_properties", "type": "boolean", "_name_": "get_user_properties", "_required_": false}, "get_source": {"default": true, "description": "Hidden field to retrieve source information for a zfs property.\n\nNOTE: This should only ever be toggled by internal consumers and you should know what you're doing by toggling this to False.", "exclude_json_schema": true, "title": "get_source", "type": "boolean", "_name_": "get_source", "_required_": false}, "nest_results": {"default": false, "description": "Return a nested object that associates all children to their respective parents in the filesystem. By default, each zfs resource is returned as a separate item in the array and is not associated to its parent.", "title": "nest_results", "type": "boolean", "_name_": "nest_results", "_required_": false}, "get_children": {"default": false, "description": "Retrieve children information for the zfs resource.", "title": "get_children", "type": "boolean", "_name_": "get_children", "_required_": false}}, "title": "data", "type": "object", "default": {"paths": [], "properties": [], "get_user_properties": false, "get_source": true, "nest_results": false, "get_children": false}, "description": "Query parameters for retrieving ZFS resource information.", "_name_": "data", "_required_": false, "_attrs_order_": ["paths", "properties", "get_user_properties", "get_source", "nest_results", "get_children"]}], "returns": [{"items": [{"additionalProperties": false, "properties": {"createtxg": {"description": "Transaction group when resource was created.", "title": "createtxg", "type": "integer", "_name_": "createtxg", "_required_": true}, "guid": {"description": "Globally unique identifier for the resource.", "title": "guid", "type": "integer", "_name_": "guid", "_required_": true}, "name": {"description": "The name of the zfs resource.", "title": "name", "type": "string", "_name_": "name", "_required_": true}, "pool": {"description": "The name of the zpool that the zfs resouce is associated to.", "title": "pool", "type": "string", "_name_": "pool", "_required_": true}, "properties": {"additionalProperties": false, "properties": {"aclinherit": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{"additionalProperties": false, "properties": {"type": {"description": "The source type.", "enum": ["NONE", "DEFAULT", "TEMPORARY", "LOCAL", "INHERITED", "RECEIVED"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "value": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The source value.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["type", "value"], "title": "SourceValue", "type": "object", "_attrs_order_": ["type", "value"]}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "aclinherit", "type": "object", "description": "Controls how ACEs are inherited for new files/directories.", "_name_": "aclinherit", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "aclmode": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "aclmode", "type": "object", "description": "Determines how ACLs are modified during chmod operations.", "_name_": "aclmode", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "acltype": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "acltype", "type": "object", "description": "Specifies type of ACL to use (off, nfsv4, posix).", "_name_": "acltype", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "atime": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "atime", "type": "object", "description": "Controls whether access time is updated on file reads.", "_name_": "atime", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "canmount": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "canmount", "type": "object", "description": "Controls whether filesystem can be mounted.", "_name_": "canmount", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "casesensitivity": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "casesensitivity", "type": "object", "description": "Determines filename matching algorithm sensitivity.", "_name_": "casesensitivity", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defaultgroupobjquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defaultgroupobjquota", "type": "object", "description": "Default object quota for new groups.", "_name_": "defaultgroupobjquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defaultgroupquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defaultgroupquota", "type": "object", "description": "Default space quota for new groups.", "_name_": "defaultgroupquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defaultprojectobjquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defaultprojectobjquota", "type": "object", "description": "Default object quota for new projects.", "_name_": "defaultprojectobjquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defaultprojectquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defaultprojectquota", "type": "object", "description": "Default space quota for new projects.", "_name_": "defaultprojectquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defaultuserobjquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defaultuserobjquota", "type": "object", "description": "Default object quota for new users.", "_name_": "defaultuserobjquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defaultuserquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defaultuserquota", "type": "object", "description": "Default space quota for new users.", "_name_": "defaultuserquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "devices": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "devices", "type": "object", "description": "Controls whether device files can be opened.", "_name_": "devices", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "direct": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "direct", "type": "object", "description": "Controls direct I/O behavior (standard or always).", "_name_": "direct", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "dnodesize": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "dnodesize", "type": "object", "description": "Controls dnode size for new objects.", "_name_": "dnodesize", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "exec": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "exec", "type": "object", "description": "Controls whether programs can be executed from filesystem.", "_name_": "exec", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "filesystem_count": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "filesystem_count", "type": "object", "description": "(READ-ONLY): Count of child filesystems.", "_name_": "filesystem_count", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "filesystem_limit": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "filesystem_limit", "type": "object", "description": "Maximum number of child filesystems allowed.", "_name_": "filesystem_limit", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "longname": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "longname", "type": "object", "description": "Controls support for long filenames.", "_name_": "longname", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "mounted": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "mounted", "type": "object", "description": "(READ-ONLY): Property indicating if filesystem is mounted.", "_name_": "mounted", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "mountpoint": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "mountpoint", "type": "object", "description": "Controls mount point used for this filesystem.", "_name_": "mountpoint", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "nbmand": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "nbmand", "type": "object", "description": "Controls non-blocking mandatory locking behavior.", "_name_": "nbmand", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "normalization": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "normalization", "type": "object", "description": "Unicode normalization property for filenames.", "_name_": "normalization", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "overlay": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "overlay", "type": "object", "description": "Controls overlay mount behavior.", "_name_": "overlay", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "quota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "quota", "type": "object", "description": "Limits space consumed by dataset and descendants.", "_name_": "quota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "recordsize": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "recordsize", "type": "object", "description": "Maximum block size for files in this filesystem.", "_name_": "recordsize", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "refquota": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "refquota", "type": "object", "description": "Limits space consumed by dataset itself (no descendants).", "_name_": "refquota", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "refreservation": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "refreservation", "type": "object", "description": "Minimum space reserved for volume itself.", "_name_": "refreservation", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "relatime": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "relatime", "type": "object", "description": "Controls relative access time updates.", "_name_": "relatime", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "setuid": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "setuid", "type": "object", "description": "Controls setuid/setgid bit respect on executable files.", "_name_": "setuid", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "sharenfs": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "sharenfs", "type": "object", "description": "Controls NFS sharing options for the filesystem.", "_name_": "sharenfs", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "sharesmb": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "sharesmb", "type": "object", "description": "Controls SMB/CIFS sharing options for the filesystem.", "_name_": "sharesmb", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "snapdir": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "snapdir", "type": "object", "description": "Controls snapshot directory visibility (hidden or visible).", "_name_": "snapdir", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "special_small_blocks": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "special_small_blocks", "type": "object", "description": "Size threshold for storing blocks on special vdevs.", "_name_": "special_small_blocks", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "utf8only": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "utf8only", "type": "object", "description": "Controls whether only UTF-8 filenames are allowed.", "_name_": "utf8only", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "version": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "version", "type": "object", "description": "(READ-ONLY): Filesystem version number.", "_name_": "version", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "volmode": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "volmode", "type": "object", "description": "Controls volume mode (default, geom, dev, none).", "_name_": "volmode", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "vscan": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "vscan", "type": "object", "description": "Controls virus scanning behavior.", "_name_": "vscan", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "xattr": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "xattr", "type": "object", "description": "Controls extended attribute behavior (on, off, sa, dir).", "_name_": "xattr", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "zoned": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "zoned", "type": "object", "description": "Controls whether filesystem is managed from a zone.", "_name_": "zoned", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "available": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "available", "type": "object", "description": "Amount of space available to dataset and its children.", "_name_": "available", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "checksum": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "checksum", "type": "object", "description": "Controls checksum algorithm used to verify data integrity.", "_name_": "checksum", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "compression": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "compression", "type": "object", "description": "Controls compression algorithm used for this dataset.", "_name_": "compression", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "compressratio": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "compressratio", "type": "object", "description": "(READ-ONLY): Property showing achieved compression ratio.", "_name_": "compressratio", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "context": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "context", "type": "object", "description": "SELinux security context for the dataset.", "_name_": "context", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "copies": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "copies", "type": "object", "description": "Controls number of copies of data stored (1, 2, or 3).", "_name_": "copies", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "createtxg": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "createtxg", "type": "object", "description": "(READ-ONLY): Transaction group when dataset was created.", "_name_": "createtxg", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "creation": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "creation", "type": "object", "description": "(READ-ONLY): Timestamp when dataset was created.", "_name_": "creation", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "dedup": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "dedup", "type": "object", "description": "Controls data deduplication for the dataset.", "_name_": "dedup", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "defcontext": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "defcontext", "type": "object", "description": "SELinux default security context for new files.", "_name_": "defcontext", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "encryption": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "encryption", "type": "object", "description": "Controls encryption cipher suite for the dataset.", "_name_": "encryption", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "encryptionroot": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "encryptionroot", "type": "object", "description": "(READ-ONLY): Property showing encryption root dataset.", "_name_": "encryptionroot", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "fscontext": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "fscontext", "type": "object", "description": "SELinux filesystem security context.", "_name_": "fscontext", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "guid": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "guid", "type": "object", "description": "(READ-ONLY): Globally unique identifier for the dataset.", "_name_": "guid", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "keyformat": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "keyformat", "type": "object", "description": "Encryption key format (raw, hex, or passphrase).", "_name_": "keyformat", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "keylocation": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "keylocation", "type": "object", "description": "Location where encryption key is stored.", "_name_": "keylocation", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "keystatus": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "keystatus", "type": "object", "description": "(READ-ONLY): Encryption key status (available/unavailable).", "_name_": "keystatus", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "logbias": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "logbias", "type": "object", "description": "Controls ZIL write behavior (latency or throughput).", "_name_": "logbias", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "logicalreferenced": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "logicalreferenced", "type": "object", "description": "(READ-ONLY): Logical space referenced by dataset.", "_name_": "logicalreferenced", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "logicalused": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "logicalused", "type": "object", "description": "(READ-ONLY): Logical space used by dataset and descendants.", "_name_": "logicalused", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "mlslabel": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "mlslabel", "type": "object", "description": "Multi-level security label for the dataset.", "_name_": "mlslabel", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "objsetid": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "objsetid", "type": "object", "description": "(READ-ONLY): Object set identifier for the dataset.", "_name_": "objsetid", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "origin": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "origin", "type": "object", "description": "(READ-ONLY): Snapshot this dataset was cloned from.", "_name_": "origin", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "pbkdf2iters": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "pbkdf2iters", "type": "object", "description": "Number of PBKDF2 iterations for key derivation.", "_name_": "pbkdf2iters", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "prefetch": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "prefetch", "type": "object", "description": "Controls prefetch behavior (all, metadata, or none).", "_name_": "prefetch", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "primarycache": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "primarycache", "type": "object", "description": "Controls primary cache usage (all, metadata, or none).", "_name_": "primarycache", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "readonly": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "readonly", "type": "object", "description": "Controls whether dataset can be modified.", "_name_": "readonly", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "receive_resume_token REDACTED, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "receive_resume_token REDACTED, "type": "object", "description": "(READ-ONLY): Token REDACTED, "_name_": "receive_resume_token REDACTED, "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "redact_snaps": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "redact_snaps", "type": "object", "description": "(READ-ONLY): List of redaction snapshots.", "_name_": "redact_snaps", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "redundant_metadata": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "redundant_metadata", "type": "object", "description": "Controls redundant metadata storage (all or most).", "_name_": "redundant_metadata", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "refcompressratio": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "refcompressratio", "type": "object", "description": "(READ-ONLY): Compression ratio for referenced data.", "_name_": "refcompressratio", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "referenced": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "referenced", "type": "object", "description": "(READ-ONLY): Space referenced by this dataset.", "_name_": "referenced", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "reservation": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "reservation", "type": "object", "description": "Minimum space reserved for dataset and descendants.", "_name_": "reservation", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "rootcontext": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "rootcontext", "type": "object", "description": "SELinux root directory security context.", "_name_": "rootcontext", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "secondarycache": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "secondarycache", "type": "object", "description": "Controls secondary cache usage (all, metadata, or none).", "_name_": "secondarycache", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "snapdev": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "snapdev", "type": "object", "description": "Controls snapshot device visibility (hidden or visible).", "_name_": "snapdev", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "snapshot_count": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "snapshot_count", "type": "object", "description": "(READ-ONLY): Count of snapshots in this dataset.", "_name_": "snapshot_count", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "snapshot_limit": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "snapshot_limit", "type": "object", "description": "Maximum number of snapshots allowed.", "_name_": "snapshot_limit", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "snapshots_changed": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "snapshots_changed", "type": "object", "description": "(READ-ONLY): Property indicating snapshot changes.", "_name_": "snapshots_changed", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "sync": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "sync", "type": "object", "description": "Controls synchronous write behavior (standard, always, disabled).", "_name_": "sync", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "type": {"anyOf": [{"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "PropertyValue", "type": "object", "_attrs_order_": ["raw", "source", "value"]}, {"type": "null"}], "description": "(READ-ONLY): Type of ZFS dataset (filesystem, volume, etc).", "title": "type", "_name_": "type", "_required_": false}, "used": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "used", "type": "object", "description": "(READ-ONLY): Space used by dataset and descendants.", "_name_": "used", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "usedbychildren": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "usedbychildren", "type": "object", "description": "(READ-ONLY): Space used by child datasets.", "_name_": "usedbychildren", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "usedbydataset": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "usedbydataset", "type": "object", "description": "(READ-ONLY): Space used by this dataset itself.", "_name_": "usedbydataset", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "usedbyrefreservation": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "usedbyrefreservation", "type": "object", "description": "(READ-ONLY): Space used by refreservation.", "_name_": "usedbyrefreservation", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "usedbysnapshots": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "usedbysnapshots", "type": "object", "description": "(READ-ONLY): Space used by snapshots.", "_name_": "usedbysnapshots", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "written": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "written", "type": "object", "description": "(READ-ONLY): Space referenced since previous snapshot.", "_name_": "written", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "volblocksize": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "volblocksize", "type": "object", "description": "Block size for volume (typically 8K or 16K).", "_name_": "volblocksize", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "volsize": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "volsize", "type": "object", "description": "Logical size of the volume.", "_name_": "volsize", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}, "volthreading": {"additionalProperties": false, "properties": {"raw": {"description": "The raw value of the property.", "title": "raw", "type": "string", "_name_": "raw", "_required_": true}, "source": {"anyOf": [{}, {"type": "null"}], "description": "The source from where this property received its value.", "title": "source", "_name_": "source", "_required_": true}, "value": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "boolean"}, {"type": "null"}], "description": "The parsed raw value of the property.", "title": "value", "_name_": "value", "_required_": true}}, "required": ["raw", "source", "value"], "title": "volthreading", "type": "object", "description": "Controls volume threading behavior.", "_name_": "volthreading", "_required_": false, "_attrs_order_": ["raw", "source", "value"]}}, "title": "properties", "type": "object", "description": "The zfs properties for the resource.", "_name_": "properties", "_required_": true, "_attrs_order_": ["aclinherit", "aclmode", "acltype", "atime", "canmount", "casesensitivity", "defaultgroupobjquota", "defaultgroupquota", "defaultprojectobjquota", "defaultprojectquota", "defaultuserobjquota", "defaultuserquota", "devices", "direct", "dnodesize", "exec", "filesystem_count", "filesystem_limit", "longname", "mounted", "mountpoint", "nbmand", "normalization", "overlay", "quota", "recordsize", "refquota", "refreservation", "relatime", "setuid", "sharenfs", "sharesmb", "snapdir", "special_small_blocks", "utf8only", "version", "volmode", "vscan", "xattr", "zoned", "available", "checksum", "compression", "compressratio", "context", "copies", "createtxg", "creation", "dedup", "defcontext", "encryption", "encryptionroot", "fscontext", "guid", "keyformat", "keylocation", "keystatus", "logbias", "logicalreferenced", "logicalused", "mlslabel", "objsetid", "origin", "pbkdf2iters", "prefetch", "primarycache", "readonly", "receive_resume_token REDACTED, "redact_snaps", "redundant_metadata", "refcompressratio", "referenced", "reservation", "rootcontext", "secondarycache", "snapdev", "snapshot_count", "snapshot_limit", "snapshots_changed", "sync", "type", "used", "usedbychildren", "usedbydataset", "usedbyrefreservation", "usedbysnapshots", "written", "volblocksize", "volsize", "volthreading"]}, "type": {"description": "The type of ZFS resource.", "enum": ["FILESYSTEM", "VOLUME"], "title": "type", "type": "string", "_name_": "type", "_required_": true}, "user_properties": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"type": "null"}], "description": "Custom metadata properties with colon-separated names (max 256 chars).", "title": "user_properties", "_name_": "user_properties", "_required_": true}, "children": {"anyOf": [{"items": [{}], "type": "array"}, {"type": "null"}], "description": "The children of this zfs resource.", "title": "children", "_name_": "children", "_required_": true}}, "required": ["createtxg", "guid", "name", "pool", "properties", "type", "user_properties", "children"], "title": "ZFSResourceEntry", "type": "object", "_attrs_order_": ["createtxg", "guid", "name", "pool", "properties", "type", "user_properties", "children"]}], "title": "result", "type": "array", "_name_": "result", "_required_": true}]}}