addedInput schema / additionalProperties
Added value: +false
addedInput schema / properties / itemSize
Added value: +{
+ "additionalProperties": false,
+ "description": "storageFit only: size of one item; must be greater than zero.",
+ "properties": {
+ "unit": {
+ "description": "Size unit (MB, MiB, etc.).",
+ "type": "string"
+ },
+ "value": {
+ "description": "Numeric size.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+}
addedInput schema / properties / items
Added value: +{
+ "description": "compare only: 2-32 sizes to rank by byte count.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "label": {
+ "description": "Optional name; defaults to \"Item N\".",
+ "type": "string"
+ },
+ "unit": {
+ "description": "Size unit (B, KB, MiB, Gbit, etc.).",
+ "type": "string"
+ },
+ "value": {
+ "description": "Numeric size.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+ },
+ "maxItems": 32,
+ "minItems": 2,
+ "type": "array"
+}
addedInput schema / properties / operation / description
Added value: +"Which calculation to run. Each operation reads a different subset of the other fields."
addedInput schema / properties / operation / enum
Added value: +[
+ "convert",
+ "compare",
+ "transferTime",
+ "storageFit"
+]
addedInput schema / properties / size
Added value: +{
+ "additionalProperties": false,
+ "description": "transferTime only: the amount of data to transfer.",
+ "properties": {
+ "unit": {
+ "description": "Size unit (B, KB, MiB, etc.).",
+ "type": "string"
+ },
+ "value": {
+ "description": "Numeric size.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+}
addedInput schema / properties / speed
Added value: +{
+ "additionalProperties": false,
+ "description": "transferTime only: the transfer rate; must be greater than zero.",
+ "properties": {
+ "unit": {
+ "description": "Speed unit: lowercase b = bits/s (Mbps), uppercase B = bytes/s (MBps).",
+ "enum": [
+ "bps",
+ "Kbps",
+ "Mbps",
+ "Gbps",
+ "Tbps",
+ "Kibps",
+ "Mibps",
+ "Gibps",
+ "Bps",
+ "KBps",
+ "MBps",
+ "GBps",
+ "TBps",
+ "KiBps",
+ "MiBps",
+ "GiBps"
+ ],
+ "type": "string"
+ },
+ "value": {
+ "description": "Numeric speed.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+}
addedInput schema / properties / targetCapacity
Added value: +{
+ "additionalProperties": false,
+ "description": "storageFit only: total capacity to fill.",
+ "properties": {
+ "unit": {
+ "description": "Size unit (GB, GiB, TB, etc.).",
+ "type": "string"
+ },
+ "value": {
+ "description": "Numeric size.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "value",
+ "unit"
+ ],
+ "type": "object"
+}
addedInput schema / properties / unit / description
Added value: +"convert only: unit of \"value\". Decimal (KB=1000), binary (KiB=1024), or bit units."
addedInput schema / properties / unit / enum
Added value: +[
+ "B",
+ "KB",
+ "MB",
+ "GB",
+ "TB",
+ "PB",
+ "EB",
+ "KiB",
+ "MiB",
+ "GiB",
+ "TiB",
+ "PiB",
+ "EiB",
+ "bit",
+ "Kbit",
+ "Mbit",
+ "Gbit",
+ "Tbit",
+ "Kibit",
+ "Mibit",
+ "Gibit",
+ "Tibit"
+]
addedInput schema / properties / value / description
Added value: +"convert only: the numeric size to convert. Pair with \"unit\"."
addedInput schema / properties / value / minimum
Added value: +0
changedInput schema / required
Previous value: -[
- "operation",
- "value",
- "unit"
-]New value: +[
+ "operation"
+]
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "operation": {
+ "description": "Echo of the requested operation.",
+ "type": "string"
+ },
+ "result": {
+ "description": "Operation-specific payload.",
+ "properties": {
+ "binary": {
+ "description": "convert: size in B/KiB/MiB/GiB/TiB/PiB/EiB (numbers).",
+ "type": "object"
+ },
+ "bits": {
+ "description": "convert: total bits as a string.",
+ "type": "string"
+ },
+ "bytes": {
+ "description": "convert/compare: byte count as a string (BigInt-safe).",
+ "type": "string"
+ },
+ "bytesPrecise": {
+ "description": "convert: exact byte count as a string.",
+ "type": "string"
+ },
+ "decimal": {
+ "description": "convert: size in B/KB/MB/GB/TB/PB/EB (numbers).",
+ "type": "object"
+ },
+ "humanBinary": {
+ "description": "convert: best-fit binary string, e.g. 1.4 GiB.",
+ "type": "string"
+ },
+ "humanDecimal": {
+ "description": "convert/compare: best-fit decimal string, e.g. 1.5 GB.",
+ "type": "string"
+ },
+ "humanDuration": {
+ "description": "transferTime: human duration, e.g. 1m 04s.",
+ "type": "string"
+ },
+ "input": {
+ "description": "convert: the echoed value and unit.",
+ "type": "object"
+ },
+ "items": {
+ "description": "storageFit: whole items that fit as a string; compare instead returns an array of index/label/bytes/humanDecimal/percentOfMax.",
+ "type": "string"
+ },
+ "remainderBytes": {
+ "description": "storageFit: leftover bytes after the fit, as a string.",
+ "type": "string"
+ },
+ "seconds": {
+ "description": "transferTime: transfer time in seconds.",
+ "type": "number"
+ },
+ "size": {
+ "description": "transferTime: value, unit and bytes of the data.",
+ "type": "object"
+ },
+ "speed": {
+ "description": "transferTime: value, unit and bytesPerSecond of the rate.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "success": {
+ "description": "Always true on a 200; errors return 400/500 with an \"error\" string.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+}