{
  "schema": "OPS007_FIXTURES_v1",
  "cases": [
    {
      "id": "C1_VALID_SINGLE_PUT",
      "bucket": "uploads",
      "requested_key": "users/u1/a.png",
      "signed_key": "users/u1/a.png",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 500,
      "observed": 200,
      "cors_ok": true,
      "object_size_mb": 20,
      "needs_resume": false,
      "upload_id": null,
      "parts": [],
      "completed": false,
      "aborted": false,
      "stored": true,
      "app_accept": true,
      "transfer": false
    },
    {
      "id": "C2_EXPIRED_PRESIGN",
      "bucket": "uploads",
      "requested_key": "users/u1/b.png",
      "signed_key": "users/u1/b.png",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 150,
      "observed": 220,
      "cors_ok": true,
      "object_size_mb": 10,
      "needs_resume": false,
      "upload_id": null,
      "parts": [],
      "completed": false,
      "aborted": false,
      "stored": false,
      "app_accept": null,
      "transfer": false
    },
    {
      "id": "C3_KEY_SCOPE_MISMATCH",
      "bucket": "uploads",
      "requested_key": "users/u2/c.png",
      "signed_key": "users/u1/c.png",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 500,
      "observed": 180,
      "cors_ok": true,
      "object_size_mb": 15,
      "needs_resume": false,
      "upload_id": null,
      "parts": [],
      "completed": false,
      "aborted": false,
      "stored": false,
      "app_accept": null,
      "transfer": false
    },
    {
      "id": "C4_CORS_ONLY_BLOCK",
      "bucket": "uploads",
      "requested_key": "users/u1/d.png",
      "signed_key": "users/u1/d.png",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 500,
      "observed": 180,
      "cors_ok": false,
      "object_size_mb": 30,
      "needs_resume": false,
      "upload_id": null,
      "parts": [],
      "completed": false,
      "aborted": false,
      "stored": false,
      "app_accept": null,
      "transfer": false
    },
    {
      "id": "C5_MULTIPART_RETRY_COMPLETE",
      "bucket": "uploads",
      "requested_key": "users/u1/video.bin",
      "signed_key": "users/u1/video.bin",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 1000,
      "observed": 200,
      "cors_ok": true,
      "object_size_mb": 900,
      "needs_resume": true,
      "upload_id": "mpu-005",
      "parts": [
        {
          "n": 1,
          "state": "OK"
        },
        {
          "n": 2,
          "state": "FAILED_THEN_OK"
        },
        {
          "n": 3,
          "state": "OK"
        }
      ],
      "completed": true,
      "aborted": false,
      "stored": true,
      "app_accept": true,
      "transfer": false
    },
    {
      "id": "C6_MULTIPART_ORPHAN_ABORT",
      "bucket": "uploads",
      "requested_key": "users/u1/archive.bin",
      "signed_key": "users/u1/archive.bin",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 1000,
      "observed": 250,
      "cors_ok": true,
      "object_size_mb": 700,
      "needs_resume": true,
      "upload_id": "mpu-006",
      "parts": [
        {
          "n": 1,
          "state": "OK"
        },
        {
          "n": 2,
          "state": "OK"
        },
        {
          "n": 3,
          "state": "MISSING"
        }
      ],
      "completed": false,
      "aborted": false,
      "stored": false,
      "app_accept": null,
      "transfer": false
    },
    {
      "id": "C7_STORAGE_COMPLETE_APP_REJECT",
      "bucket": "uploads",
      "requested_key": "users/u1/data.json",
      "signed_key": "users/u1/data.json",
      "signer_prefix": "users/u1/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 100,
      "expires": 600,
      "observed": 200,
      "cors_ok": true,
      "object_size_mb": 50,
      "needs_resume": false,
      "upload_id": null,
      "parts": [],
      "completed": false,
      "aborted": false,
      "stored": true,
      "app_accept": false,
      "transfer": false
    },
    {
      "id": "C8_TRANSFER_CHANGED",
      "bucket": "incoming",
      "requested_key": "tenant/t9/export.bin",
      "signed_key": "tenant/t9/export.bin",
      "signer_prefix": "tenant/t9/",
      "signer_ops": [
        "PUT"
      ],
      "requested_op": "PUT",
      "issued": 1000,
      "expires": 1120,
      "observed": 1060,
      "cors_ok": true,
      "object_size_mb": 1200,
      "needs_resume": true,
      "upload_id": "mpu-008",
      "parts": [
        {
          "n": 1,
          "state": "OK"
        },
        {
          "n": 2,
          "state": "OK"
        },
        {
          "n": 3,
          "state": "FAILED_THEN_OK"
        },
        {
          "n": 4,
          "state": "OK"
        }
      ],
      "completed": true,
      "aborted": false,
      "stored": true,
      "app_accept": true,
      "transfer": true
    }
  ]
}
