{
  "schema": "MAKNOW_CON020_LAB_FIXTURES_v1",
  "cases": [
    {
      "id": "case_01_baseline",
      "grant_method": "GET",
      "request_method": "GET",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 30,
      "credential_invalidated": false,
      "url_logged_full": false,
      "required_content_type": null,
      "request_content_type": null,
      "required_headers": [],
      "request_headers": [],
      "expected_digest": "sha256:aaa1",
      "expected_size": 100,
      "http_result": 200,
      "received_digest": "sha256:aaa1",
      "received_size": 100,
      "receiver_verified": true,
      "transfer": false
    },
    {
      "id": "case_02_credential_expires_early",
      "grant_method": "GET",
      "request_method": "GET",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 8,
      "credential_invalidated": false,
      "url_logged_full": false,
      "required_content_type": null,
      "request_content_type": null,
      "required_headers": [],
      "request_headers": [],
      "expected_digest": "sha256:aaa2",
      "expected_size": 100,
      "http_result": 403,
      "received_digest": null,
      "received_size": null,
      "receiver_verified": false,
      "request_at_min": 10,
      "transfer": false
    },
    {
      "id": "case_03_capability_leak",
      "grant_method": "GET",
      "request_method": "GET",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 30,
      "credential_invalidated": false,
      "url_logged_full": true,
      "required_content_type": null,
      "request_content_type": null,
      "required_headers": [],
      "request_headers": [],
      "expected_digest": "sha256:aaa3",
      "expected_size": 100,
      "http_result": 200,
      "received_digest": "sha256:aaa3",
      "received_size": 100,
      "receiver_verified": true,
      "transfer": false
    },
    {
      "id": "case_04_wrong_bytes_2xx",
      "grant_method": "GET",
      "request_method": "GET",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 30,
      "credential_invalidated": false,
      "url_logged_full": false,
      "required_content_type": null,
      "request_content_type": null,
      "required_headers": [],
      "request_headers": [],
      "expected_digest": "sha256:aaa4",
      "expected_size": 100,
      "http_result": 200,
      "received_digest": "sha256:BAD",
      "received_size": 100,
      "receiver_verified": true,
      "transfer": false
    },
    {
      "id": "case_05_missing_expected_digest",
      "grant_method": "GET",
      "request_method": "GET",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 30,
      "credential_invalidated": false,
      "url_logged_full": false,
      "required_content_type": null,
      "request_content_type": null,
      "required_headers": [],
      "request_headers": [],
      "expected_digest": null,
      "expected_size": 100,
      "http_result": 200,
      "received_digest": "sha256:aaa5",
      "received_size": 100,
      "receiver_verified": true,
      "transfer": false
    },
    {
      "id": "case_06_method_mismatch",
      "grant_method": "GET",
      "request_method": "PUT",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 30,
      "credential_invalidated": false,
      "url_logged_full": false,
      "required_content_type": null,
      "request_content_type": "application/zip",
      "required_headers": [],
      "request_headers": [],
      "expected_digest": "sha256:aaa6",
      "expected_size": 100,
      "http_result": 403,
      "received_digest": null,
      "received_size": null,
      "receiver_verified": false,
      "transfer": false
    },
    {
      "id": "case_07_header_content_type_mismatch",
      "grant_method": "PUT",
      "request_method": "PUT",
      "grant_resource": "obj/ART-77",
      "request_resource": "obj/ART-77",
      "nominal_expiry_min": 20,
      "credential_valid_min": 30,
      "credential_invalidated": false,
      "url_logged_full": false,
      "required_content_type": "application/zip",
      "request_content_type": "application/octet-stream",
      "required_headers": [
        "content-type",
        "x-checksum"
      ],
      "request_headers": [
        "content-type"
      ],
      "expected_digest": "sha256:aaa7",
      "expected_size": 100,
      "http_result": 403,
      "received_digest": null,
      "received_size": null,
      "receiver_verified": false,
      "transfer": false
    },
    {
      "id": "case_08_transfer_put_after_rotation",
      "grant_method": "PUT",
      "request_method": "PUT",
      "grant_resource": "obj/ART-77-r2",
      "request_resource": "obj/ART-77-r2",
      "nominal_expiry_min": 20,
      "credential_valid_min": 20,
      "credential_invalidated": false,
      "old_grant_invalidated": true,
      "url_logged_full": false,
      "required_content_type": "application/zip",
      "request_content_type": "application/zip",
      "required_headers": [
        "content-type",
        "x-checksum"
      ],
      "request_headers": [
        "content-type",
        "x-checksum"
      ],
      "expected_digest": "sha256:replacement8",
      "expected_size": 120,
      "http_result": 200,
      "received_digest": null,
      "received_size": null,
      "receiver_verified": false,
      "transfer": true
    }
  ]
}
