{
  "protocolVersion": "v1",
  "fixtureSet": "inventory",
  "fixture": "valid-vectors",
  "description": "Accepted L0 inventory snapshots with their normalized form, canonical hash input, and content hash. canonicalJson is the exact byte string that is hashed after the domain prefix, so an independent implementation can diff its serialization before it ever compares a digest.",
  "vectors": [
    {
      "name": "fully populated snapshot",
      "category": "valid",
      "input": {
        "protocolVersion": "v1",
        "rustfsVersion": "1.4.2",
        "osVersion": { "family": "linux", "major": 6, "minor": 8 },
        "nodeCount": 8,
        "driveCount": 96,
        "capacityTotalBytes": 1099511627776,
        "capacityUsedBytes": 412316860416,
        "coarseFlags": ["cluster.degraded", "drive.offline"]
      },
      "expected": {
        "decision": "ACCEPT",
        "reason": null,
        "httpStatus": null,
        "retained": [
          "protocolVersion",
          "rustfsVersion",
          "osVersion",
          "nodeCount",
          "driveCount",
          "capacityTotalBytes",
          "capacityUsedBytes",
          "coarseFlags"
        ],
        "discarded": [],
        "defaultsApplied": {},
        "canonicalJson": "{\"capacityTotalBytes\":1099511627776,\"capacityUsedBytes\":412316860416,\"coarseFlags\":[\"cluster.degraded\",\"drive.offline\"],\"driveCount\":96,\"nodeCount\":8,\"osVersion\":{\"family\":\"linux\",\"major\":6,\"minor\":8},\"rustfsVersion\":\"1.4.2\"}",
        "contentHash": "e1cba9f30a26b94bb289a8a4b630a704dafaeb4960bffd38cef98e3d2581518f",
        "echoedBack": [],
        "stored": [],
        "logged": []
      }
    },
    {
      "name": "unsorted duplicated and unknown coarse flags normalize to the same snapshot",
      "category": "valid",
      "sameContentHashAs": "fully populated snapshot",
      "input": {
        "protocolVersion": "v1",
        "rustfsVersion": "1.4.2",
        "osVersion": { "family": "linux", "major": 6, "minor": 8 },
        "nodeCount": 8,
        "driveCount": 96,
        "capacityTotalBytes": 1099511627776,
        "capacityUsedBytes": 412316860416,
        "coarseFlags": ["drive.offline", "cluster.degraded", "drive.offline", "cluster.on.fire"]
      },
      "expected": {
        "decision": "ACCEPT",
        "reason": null,
        "httpStatus": null,
        "retained": [
          "protocolVersion",
          "rustfsVersion",
          "osVersion",
          "nodeCount",
          "driveCount",
          "capacityTotalBytes",
          "capacityUsedBytes",
          "coarseFlags"
        ],
        "discarded": ["coarseFlags[cluster.on.fire]"],
        "defaultsApplied": {},
        "canonicalJson": "{\"capacityTotalBytes\":1099511627776,\"capacityUsedBytes\":412316860416,\"coarseFlags\":[\"cluster.degraded\",\"drive.offline\"],\"driveCount\":96,\"nodeCount\":8,\"osVersion\":{\"family\":\"linux\",\"major\":6,\"minor\":8},\"rustfsVersion\":\"1.4.2\"}",
        "contentHash": "e1cba9f30a26b94bb289a8a4b630a704dafaeb4960bffd38cef98e3d2581518f",
        "echoedBack": [],
        "stored": [],
        "logged": []
      }
    },
    {
      "name": "every limit at its maximum",
      "category": "valid",
      "input": {
        "protocolVersion": "v1",
        "rustfsVersion": "9999.9999.9999",
        "osVersion": { "family": "other", "major": 9999, "minor": 9999 },
        "nodeCount": 4096,
        "driveCount": 1048576,
        "capacityTotalBytes": 9007199254740991,
        "capacityUsedBytes": 9007199254740991,
        "coarseFlags": [
          "capacity.critical",
          "capacity.warning",
          "clock.skew",
          "cluster.degraded",
          "cluster.healing",
          "cluster.readonly",
          "drive.offline",
          "node.offline"
        ]
      },
      "expected": {
        "decision": "ACCEPT",
        "reason": null,
        "httpStatus": null,
        "retained": [
          "protocolVersion",
          "rustfsVersion",
          "osVersion",
          "nodeCount",
          "driveCount",
          "capacityTotalBytes",
          "capacityUsedBytes",
          "coarseFlags"
        ],
        "discarded": [],
        "defaultsApplied": {},
        "canonicalJson": "{\"capacityTotalBytes\":9007199254740991,\"capacityUsedBytes\":9007199254740991,\"coarseFlags\":[\"capacity.critical\",\"capacity.warning\",\"clock.skew\",\"cluster.degraded\",\"cluster.healing\",\"cluster.readonly\",\"drive.offline\",\"node.offline\"],\"driveCount\":1048576,\"nodeCount\":4096,\"osVersion\":{\"family\":\"other\",\"major\":9999,\"minor\":9999},\"rustfsVersion\":\"9999.9999.9999\"}",
        "contentHash": "b69d51f898a53562a7057faa5bda1e21699ee6615517cd8b1455096f9171bce4",
        "echoedBack": [],
        "stored": [],
        "logged": []
      }
    },
    {
      "name": "every limit at its minimum",
      "category": "valid",
      "input": {
        "protocolVersion": "v1",
        "rustfsVersion": "0.0.0",
        "osVersion": null,
        "nodeCount": 1,
        "driveCount": 0,
        "capacityTotalBytes": 0,
        "capacityUsedBytes": 0,
        "coarseFlags": []
      },
      "expected": {
        "decision": "ACCEPT",
        "reason": null,
        "httpStatus": null,
        "retained": [
          "protocolVersion",
          "rustfsVersion",
          "osVersion",
          "nodeCount",
          "driveCount",
          "capacityTotalBytes",
          "capacityUsedBytes",
          "coarseFlags"
        ],
        "discarded": [],
        "defaultsApplied": {},
        "canonicalJson": "{\"capacityTotalBytes\":0,\"capacityUsedBytes\":0,\"coarseFlags\":[],\"driveCount\":0,\"nodeCount\":1,\"osVersion\":null,\"rustfsVersion\":\"0.0.0\"}",
        "contentHash": "08ebc03ee906c05d686ef32c0998154213f2811a2d07408a9ef7d0b205cc701b",
        "echoedBack": [],
        "stored": [],
        "logged": []
      }
    },
    {
      "name": "a full cluster reports used equal to total",
      "category": "valid",
      "input": {
        "protocolVersion": "v1",
        "rustfsVersion": "1.4.2",
        "osVersion": { "family": "freebsd", "major": 14, "minor": 1 },
        "nodeCount": 4,
        "driveCount": 32,
        "capacityTotalBytes": 549755813888,
        "capacityUsedBytes": 549755813888,
        "coarseFlags": ["capacity.critical", "cluster.readonly"]
      },
      "expected": {
        "decision": "ACCEPT",
        "reason": null,
        "httpStatus": null,
        "retained": [
          "protocolVersion",
          "rustfsVersion",
          "osVersion",
          "nodeCount",
          "driveCount",
          "capacityTotalBytes",
          "capacityUsedBytes",
          "coarseFlags"
        ],
        "discarded": [],
        "defaultsApplied": {},
        "canonicalJson": "{\"capacityTotalBytes\":549755813888,\"capacityUsedBytes\":549755813888,\"coarseFlags\":[\"capacity.critical\",\"cluster.readonly\"],\"driveCount\":32,\"nodeCount\":4,\"osVersion\":{\"family\":\"freebsd\",\"major\":14,\"minor\":1},\"rustfsVersion\":\"1.4.2\"}",
        "contentHash": "0ab2308e84d2a9660650526edcd07795fe08a0fea047f16718846ce883a150b3",
        "echoedBack": [],
        "stored": [],
        "logged": []
      }
    }
  ]
}
